MongoDB Упражнение - Найти рестораны, которые набрали больше, чем заданное число
Напишите запрос MongoDB, чтобы найти рестораны, набравшие более 90 баллов.
Структура коллекции ресторанов
{ "адрес": { «здание»: «1007», «координата»: [-73,856077, 40,848447], "улица": "Моррис Парк Авеню", почтовый индекс: 10462 }, "Боро": "Бронкс", "кухня": "пекарня", "оценки": [ {"date": {"$ date": 1393804800000}, "оценка": "A", "оценка": 2}, {"date": {"$ date": 1378857600000}, "оценка": "A", "оценка": 6}, {"date": {"$ date": 1358985600000}, "оценка": "A", "оценка": 10}, {"date": {"$ date": 1322006400000}, "оценка": "A", "оценка": 9}, {"date": {"$ date": 1299715200000}, "оценка": "B", "оценка": 14} ], "name": "Morris Park Bake Shop", "restaurant_id": "30075445" }
Запрос:
db.restaurants.find({grades : { $elemMatch:{"score":{$gt : 90}}}});
Выход:
{"_id": ObjectId ("564c2d939eb21ad392f17726"), "address": {"building": "65", "ord": [-73.9782725, 40.7624022], "street": "West 54 Street", "почтовый индекс": "10019"}, "городской округ": "Манхэттен", "кухня": "американская", "классы": [{"дата": ISODate ("2014-08-22T00: 00: 00Z"), "класс": «A», «оценка»: 11}, {«дата»: ISODate («2014-03-28T00: 00: 00Z»), «оценка»: «C», «оценка»: 131}, {«дата» : ISODate ("2013-09-25T00: 00: 00Z"), "оценка": "A", "оценка": 11}, {"дата": ISODate ("2013-04-08T00: 00: 00Z ")," оценка ":" B "," оценка ": 25}, {" дата ": ISODate (" 2012-10-15T00: 00: 00Z ")," оценка ":" A "," оценка " : 11}, {"date": ISODate ("2011-10-19T00: 00: 00Z"), "grade": "A", "Score": 13}], "name": "Murals On 54 / Randolphs'S "," restaurant_id ":" 40372466 "} {"_id": ObjectId ("564c2d939eb21ad392f177c8"), "address": {"building": "345", "corre": [-73.9864626, 40.7266739], "street": "East 6 Street", "zipcode": "10003"}, "местный": "Манхэттен", "кухня": "индийская", "сорта": [{"date": ISODate ("2014-09-15T00: 00: 00Z"), "grade": «A», «оценка»: 5}, {«дата»: ISODate («2014-01-14T00: 00: 00Z»), «оценка»: «A», «оценка»: 8}, {«дата» : ISODate ("2013-05-30T00: 00: 00Z"), "оценка": "A", "оценка": 12}, {"дата": ISODate ("2013-04-24T00: 00: 00Z") , " оценка ":" P "," оценка ": 2}, {" дата ": ISODate (" 2012-10-01T00: 00: 00Z ")," оценка ":" A "," оценка ": 9}, { «дата»: ISODate («2012-04-06T00: 00: 00Z»), «оценка»: «C», «оценка»: 92}, {«дата»: ISODate («2011-11-03T00: 00: 00Z ")," grade ":" C "," score ": 41}]," name ":" Gandhi "," restaurant_id ":" 40381295 "} {"_id": ObjectId ("564c2d939eb21ad392f17929"), "address": {"building": "130", "corre": [-73.984758, 40.7457939], "street": "Madison Avenue", "zipcode": " 10016 "}," местный ":" Манхэттен "," кухня ":" Пицца / Итальянский "," Сорта ": [{" дата ": ISODate (" 2014-12-24T00: 00: 00Z ")," Сорт ") : "Z", "оценка": 31}, {"дата": ISODate ("2014-06-17T00: 00: 00Z"), "оценка": "C", "оценка": 98}, {"дата ": ISODate (" 2013-12-12T00: 00: 00Z ")," оценка ":" C "," оценка ": 32}, {" дата ": ISODate (" 2013-05-22T00: 00 : 00Z ")," оценка ":" B "," оценка ": 21}, {" дата ": ISODate (" 2012-05-02T00: 00: 00Z ")," оценка ":" A "," оценка ": 11}]," name ":" Bella Napoli "," restaurant_id ":" 40393488 "} {"_id": ObjectId ("564c2d949eb21ad392f1a951"), "address": {"building": "1724", "corre": [-73.94981, 40.780043], "street": "2 Avenue", "zipcode": " 10128 "}," городской округ ":" Манхэттен "," кухня ":" индийская "," сорта ": [{" date ": ISODate (" 2014-09-25T00: 00: 00Z ")," grade ":" A "," оценка ": 7}, {" дата ": ISODate (" 2014-03-20T00: 00: 00Z ")," оценка ":" A "," оценка ": 12}, {" дата ": ISODate ("2013-09-09T00: 00: 00Z"), "оценка": "B", "оценка": 21}, {"дата": ISODate ("2013-03-25T00: 00: 00Z"), «класс» : "B", "оценка": 18}, {"дата": ISODate ("2012-08-15T00: 00: 00Z"), "оценка": "A", "оценка": 11}, {"дата ": ISODate (" 2011-12-23T00: 00: 00Z ")," оценка ":" C "," оценка ": 98}]," name ":" Индийская еда Балучи "," restaurant_id ":" 41569277 " }
Примечание. Этот вывод генерируется с использованием сервера MongoDB версии 3.6.
Улучшите этот пример решения и опубликуйте свой код через Disqus.
Предыдущий: Напишите запрос MongoDB, чтобы отобразить следующие 5 ресторанов после пропуска первых 5, которые находятся в районе Бронкс.
Далее: Напишите запрос MongoDB, чтобы найти рестораны, которые набрали больше 80 баллов, но меньше 100.
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования
disqus2code