w3resource

Find listings with high price and security deposit


Find all listings with listing_url, name, property_type, bed, price, security_deposit in the listingsAndReviews collection that have a price greater than $500 and a security deposit of $1000 or more.

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: {
      price: { $gt: 500 },
      security_deposit: { $gte: 1000 }
    }
  },
  {
    $project: {
      listing_url: 1,
      name: 1,
      property_type: 1,
      bed: 1,
      price: 1,
      security_deposit: 1
    }
  }
])

Output:

    {,
    _id: '10317142',
    listing_url: 'https://www.airbnb.com/rooms/10317142',
    name: 'Private OceanFront - Bathtub Beach. Spacious House',
    property_type: 'House',mo Parque Olimpico',
    price: Decimal128("795.00"),
    security_deposit: Decimal128("1000.00")
  },guests_included: Decimal128("1")
  {,
    _id: '10343118',
    listing_url: 'https://www.airbnb.com/rooms/10343118',
    name: 'Best location 1BR Apt in HK - Shops & Sights',
    property_type: 'Apartment',elsea',
    price: Decimal128("997.00"),
    security_deposit: Decimal128("1000.00")
  },guests_included: Decimal128("1")
  {,
    _id: '10659534',
    listing_url: 'https://www.airbnb.com/rooms/10659534',
    name: 'Beautiful 1 Bedroom Apartment',ooms/1003530',
    property_type: 'Apartment',r West Side Apt',
    price: Decimal128("997.00"),
    security_deposit: Decimal128("1000.00")
  },guests_included: Decimal128("1")
  {,
    _id: '10671783',
    listing_url: 'https://www.airbnb.com/rooms/10671783',
    name: 'CASA PARA AS OLIMPIADAS 2016',rooms/1001265',
    property_type: 'House',ki Marina w/prkg',
    price: Decimal128("3726.00"),
    security_deposit: Decimal128("3730.00")
  },guests_included: Decimal128("1")

.....

Explanation:

The said query in MongoDB that retrieves all the documents with the listing_url, name, property_type, bed, price, and security_deposit fields from the listingsAndReviews collection that have a price greater than $500 and a security deposit of $1000 or more.

The $gt and $gte operator in the $match stage filters the documents based on the price field is greater than $500 and the security_deposit field is greater than or equal to $1000.

The $project stage includes the listing_url, name, property_type, bed, price, and security_deposit in the result set, so we set their values to 1.

Improve this sample solution and post your code through Disqus.

Previous: Find listings with maximum 5 guests included.
Next: Find listings with strict cancellation policy.

What is the difficulty level of this exercise?



Become a Patron!

Follow us on Facebook and Twitter for latest update.

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-38.php