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?
It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.
https://www.w3resource.com/mongodb-exercises/mongodb-listingsandreviews-exercise-34.php
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics