Find listings with host pictures in the listingsAndReviews collection
Find all listings with listing_url, name, address, host_picture_url in the listingsAndReviews collection that have a host with a picture url.
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.aggregate([
{
$match: {
"host.host_picture_url": { $exists: true, $ne: null }
}
},
{ $project: {
listing_url: 1,
name: 1,
address: 1, "host.host_picture_url": 1
}
}
])
Output:
{ _id: '10059244', listing_url: 'https://www.airbnb.com/rooms/10059244', name: 'Ligne verte - à 15 min de métro du centre ville.', host: { host_picture_url: 'https://a0.muscache.com/im/pictures/user/c64773a6-da5f-4c1a-91fe-f17131e4473b.jpg?aki_policy=profile_x_medium' }, address: { street: 'Montréal, Québec, Canada', suburb: 'Hochelaga-Maisonneuve', government_area: 'Mercier-Hochelaga-Maisonneuve', market: 'Montreal', country: 'Canada', country_code: 'CA', location: { type: 'Point', coordinates: [ -73.54949, 45.54548 ], is_location_exact: false } } }, { _id: '10069642', listing_url: 'https://www.airbnb.com/rooms/10069642', name: 'Ótimo Apto proximo Parque Olimpico', host: { host_picture_url: 'https://a0.muscache.com/im/pictures/9a6839d9-9bea-451b-961d-5965894b9b9a.jpg?aki_policy=profile_x_medium' }, address: { street: 'Rio de Janeiro, Rio de Janeiro, Brazil', suburb: 'Recreio dos Bandeirantes', government_area: 'Recreio dos Bandeirantes', market: 'Rio De Janeiro', country: 'Brazil', country_code: 'BR', location: { type: 'Point', coordinates: [ -43.4311123147628, -23.00035792660916 ], is_location_exact: false } } }, .....
Explanation:
The said query in MongoDB that retrieves all the documents with the listing_url, name, address, and host_picture_url fields from the listingsAndReviews collection that have a host with a non-null picture URL.
The $exists operator within the $match stage checks whether the host.host_picture_url field exists and is not null and filters only those documents that satisfy this condition.
The second stage $project includes the fields listing_url, name, address, and host.host_picture_url in the output. The 1 next to each field indicates inclusion, while 0 would indicate exclusion.
Improve this sample solution and post your code through Disqus.
Previous: Find listings with host verifications and size in MongoDB.
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://w3resource.com/mongodb-exercises/mongodb-listingsandreviews-exercise-50.php
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics