MongoDB Exercise - Find restaurants in Manhattan that have a grade of 2 or 6
Write a MongoDB query to find the restaurants that have a grade with a score of 2 or a grade with a score of 6 and are located in the borough of Manhattan.
Structure of 'restaurants' collection :
{ "address": { "building": "1007", "coord": [ -73.856077, 40.848447 ], "street": "Morris Park Ave", "zipcode": "10462" }, "borough": "Bronx", "cuisine": "Bakery", "grades": [ { "date": { "$date": 1393804800000 }, "grade": "A", "score": 2 }, { "date": { "$date": 1378857600000 }, "grade": "A", "score": 6 }, { "date": { "$date": 1358985600000 }, "grade": "A", "score": 10 }, { "date": { "$date": 1322006400000 }, "grade": "A", "score": 9 }, { "date": { "$date": 1299715200000 }, "grade": "B", "score": 14 } ], "name": "Morris Park Bake Shop", "restaurant_id": "30075445" }
Query:
db.restaurants.find({
$and: [
{
$or: [
{ "grades.score": 2 },
{ "grades.score": 6 }
]
},
{ "borough": "Manhattan" }
]
})
Output:
{ "_id" : ObjectId("6422c0161238e3bec47ca601"), "address" : { "building" : "351", "coord" : [ -73.98513559999999, 40.7676919 ], "street" : "West 57 Street", "zipcode" : "10019" }, "borough" : "Manhattan", "cuisine" : "Irish", "grades" : [ { "date" : { "$date" : 1409961600000 }, "grade" : "A", "score" : 2 }, { "date" : { "$date" : 1374451200000 }, "grade" : "A", "score" : 11 }, { "date" : { "$date" : 1343692800000 }, "grade" : "A", "score" : 12 }, { "date" : { "$date" : 1325116800000 }, "grade" : "A", "score" : 12 } ], "name" : "Dj Reynolds Pub And Restaurant", "restaurant_id" : "30191841" } { "_id" : ObjectId("6422c02c1238e3bec47ca60c"), "address" : { "building" : "1", "coord" : [ -73.96926909999999, 40.7685235 ], "street" : "East 66 Street", "zipcode" : "10065" }, "borough" : "Manhattan", "cuisine" : "American ", "grades" : [ { "date" : { "$date" : 1399420800000 }, "grade" : "A", "score" : 3 }, { "date" : { "$date" : 1367539200000 }, "grade" : "A", "score" : 4 }, { "date" : { "$date" : 1335744000000 }, "grade" : "A", "score" : 6 }, { "date" : { "$date" : 1324944000000 }, "grade" : "A", "score" : 0 } ], "name" : "1 East 66Th Street Kitchen", "restaurant_id" : "40359480" } .....
Explanation:
The said query in MongoDB that finds the restaurants that have a grade with a score of 2 or a grade with a score of 6 and are located in the borough of Manhattan.
The $and operator that specified is looking for restaurants that have a grade with a score of 2 OR a grade with a score of 6 AND are located in the borough of Manhattan.
Note: This output is generated using MongoDB server version 3.6
Improve this sample solution and post your code through Disqus.
Previous: Find restaurants with a grade of 2 or a grade of 6.
Next: Find restaurants in Manhattanor Brooklynthat have a grade of 2 or 6.
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-exercise-44.php
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics