Retrieve listings with multiple listings by hosts
Retrieve all documents with listing_url, name, host, price in the listingsAndReviews collection where the host_total_listings_count field is greater than 1.
Structure of 'listingsAndReviews' collection:
{ _id: '10059872', listing_url: 'https://www.airbnb.com/rooms/10059872', name: 'Soho Cozy, Spacious and Convenient', summary: 'Clean, fully furnish, Spacious 1 bedroom flat just off the escalator in Mid Levels. 2 minutes From Soho Bar and Restaurants. Located in a quiet alley 1 minute from Sun Yat Sen', space: '', description: 'Clean, fully furnish, Spacious 1 bedroom flat just off the escalator in Mid Levels. 2 minutes From Soho Bar and Restaurants. Located in a quiet alley 1 minute from Sun Yat Sen', neighborhood_overview: '', notes: '', transit: '', access: '', interaction: '', house_rules: '', property_type: 'Apartment', room_type: 'Entire home/apt', bed_type: 'Real Bed', minimum_nights: '4', maximum_nights: '20', cancellation_policy: 'flexible', last_scraped: ISODate("2019-03-11T04:00:00.000Z"), calendar_last_scraped: ISODate("2019-03-11T04:00:00.000Z"), first_review: ISODate("2015-12-19T05:00:00.000Z"), last_review: ISODate("2018-03-27T04:00:00.000Z"), accommodates: 3, bedrooms: 1, beds: 2, number_of_reviews: 3, bathrooms: Decimal128("1.0"), amenities: [ 'Air conditioning', 'Kitchen', 'Smoking allowed', 'Doorman', 'Elevator', 'Heating', 'Family/kid friendly', 'Essentials', '24-hour check-in', 'translation missing: en.hosting_amenity_50' ], price: Decimal128("699.00"), weekly_price: Decimal128("5000.00"), extra_people: Decimal128("0.00"), guests_included: Decimal128("1"), images: { thumbnail_url: '', medium_url: '', picture_url: 'https://a0.muscache.com/im/pictures/4533a1dc-6fd8-4167-938d-391c6eebbc19.jpg?aki_policy=large', xl_picture_url: '' }, host: { host_id: '51624384', host_url: 'https://www.airbnb.com/users/show/51624384', host_name: 'Giovanni', host_location: 'Hong Kong, Hong Kong', host_about: '', host_thumbnail_url: 'https://a0.muscache.com/im/pictures/264b82a7-756f-4da8-b607-dc9759e2a10f.jpg?aki_policy=profile_small', host_picture_url: 'https://a0.muscache.com/im/pictures/264b82a7-756f-4da8-b607-dc9759e2a10f.jpg?aki_policy=profile_x_medium', host_neighbourhood: 'Soho', host_is_superhost: false, host_has_profile_pic: true, host_identity_verified: false, host_listings_count: 1, host_total_listings_count: 1, host_verifications: [ 'email', 'phone', 'reviews', 'jumio', 'government_id' ] }, address: { street: 'Hong Kong, Hong Kong Island, Hong Kong', suburb: 'Central & Western District', government_area: 'Central & Western', market: 'Hong Kong', country: 'Hong Kong', country_code: 'HK', location: { type: 'Point', coordinates: [ 114.15027, 22.28158 ], is_location_exact: true } }, availability: { availability_30: 0, availability_60: 0, availability_90: 0, availability_365: 0 }, review_scores: { review_scores_accuracy: 10, review_scores_cleanliness: 10, review_scores_checkin: 10, review_scores_communication: 10, review_scores_location: 10, review_scores_value: 8, review_scores_rating: 100 }, reviews: [ { _id: '56904633', date: ISODate("2015-12-19T05:00:00.000Z"), listing_id: '10059872', reviewer_id: '5302612', reviewer_name: 'Octavio', comments: 'The host canceled this reservation 11 days before arrival. This is an automated posting.' }, { _id: '223175530', date: ISODate("2018-01-01T05:00:00.000Z"), listing_id: '10059872', reviewer_id: '48436743', reviewer_name: 'Ross', comments: 'Giovanni was very helpful and responsive to my questions. This is a great apartment that is very convenient for exploring Hong Kong.' }, { _id: '247251577', date: ISODate("2018-03-27T04:00:00.000Z"), listing_id: '10059872', reviewer_id: '111288273', reviewer_name: 'Christian', comments: 'The host canceled this reservation 8 days before arrival. This is an automated posting.' } ] }, .......
Query:
db.listingsAndReviews.find({
"host.host_total_listings_count": { $gt: 1 }
},
{
"listing_url": 1,
"name": 1,
"host": 1,
"price": 1
})
Output:
{ _id: '10083468', listing_url: 'https://www.airbnb.com/rooms/10083468', name: 'Be Happy in Porto', price: Decimal128("30.00"), host: { host_id: '27518920', host_url: 'https://www.airbnb.com/users/show/27518920', host_name: 'Fábio', host_location: 'São Félix da Marinha, Porto, Portugal', host_about: 'Olá o meu nome é Fábio Ramos tenho 32 anos.\r\n' + 'Sou uma pessoa animada, divertida e altruísta, tenho inúmeros prazeres nesta vida um dos quais é viajar e conhecer pessoas de outras nacionalidades culturas. \r\n' + 'Enquanto anfitrião prometo ser o mais prestativo possível, tanto nos primeiros contactos como quando forem meus hóspedes, estarei sempre disponível para ajudar e dar todo o suporte necessário para que passa uma estadia super agradável e interessante na cidade do Porto. ', host_response_time: 'within an hour', host_thumbnail_url: 'https://a0.muscache.com/im/pictures/user/30283df3-5b0b-47bb-8f81-990bdf925fb6.jpg?aki_policy=profile_small', host_picture_url: 'https://a0.muscache.com/im/pictures/user/30283df3-5b0b-47bb-8f81-990bdf925fb6.jpg?aki_policy=profile_x_medium', host_neighbourhood: '', host_response_rate: 90, host_is_superhost: true, host_has_profile_pic: true, host_identity_verified: true, host_listings_count: 3, host_total_listings_count: 3, host_verifications: [ 'email', 'phone', 'reviews', 'manual_offline', 'jumio', 'government_id' ] } }, { _id: '10227000', listing_url: 'https://www.airbnb.com/rooms/10227000', name: 'LAHAINA, MAUI! RESORT/CONDO BEACHFRONT!! SLEEPS 4!', price: Decimal128("499.00"), host: { host_id: '12057949', host_url: 'https://www.airbnb.com/users/show/12057949', host_name: 'Holly', host_location: 'Las Vegas, Nevada, United States', host_about: "My husband and I have been privileged with the opportunity to make our DREAMS our MEMORIES and we're here to help assist you with yours'..........Traveling is TRULY what life is about!", host_response_time: 'within a day', host_thumbnail_url: 'https://a0.muscache.com/im/users/12057949/profile_pic/1415478237/original.jpg?aki_policy=profile_small', host_picture_url: 'https://a0.muscache.com/im/users/12057949/profile_pic/1415478237/original.jpg?aki_policy=profile_x_medium', host_neighbourhood: 'Central Business District', host_response_rate: 91, host_is_superhost: false, host_has_profile_pic: true, host_identity_verified: true, host_listings_count: 472, host_total_listings_count: 472, host_verifications: [ 'email', 'phone', 'google', 'reviews', 'jumio', 'offline_government_id', 'kba', 'government_id' ] } } .....
Explanation:
The said query in MongoDB that retrieves all documents with listing_url, name, host, and price fields from the listingsAndReviews collection where the host_total_listings_count field is greater than 1.
In the find() method the $gt operator filters the documents where the value of the host_total_listings_count field is greater than 1, indicating that the host has more than one listing.
In the projection part it includes the listing_url, name, host, and price fields in the result set.
Improve this sample solution and post your code through Disqus.
Previous: Find listings with jumio-verified hosts and about section.
Next: Retrieve apartments with two or more beds in the ListingsAndReviews collection.
What is the difficulty level of this exercise?
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics