MongoDB Exercise - найти идентификатор ресторана, название и оценки, где 2-й элемент массива оценок содержит оценку A и оценку 9 на определенную дату
Напишите запрос MongoDB, чтобы найти идентификатор ресторана, название и оценки для тех ресторанов, где 2-й элемент массива оценок содержит оценку «А» и оценку 9 на ISODate «2014-08-11T00: 00: 00Z».
Структура коллекции ресторанов
{ "адрес": { «здание»: «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.1.date": ISODate("2014-08-11T00:00:00Z"),
"grades.1.grade":"A" ,
"grades.1.score" : 9
},
{"restaurant_id" : 1,"name":1,"grades":1}
);
Выход:
{"_id": ObjectId ("564c2d949eb21ad392f17bf3"), "grades": [{"date": ISODate ("2015-01-12T00: 00: 00Z"), "grade": "A", "score": 10 }, {"date": ISODate ("2014-08-11T00: 00: 00Z"), "grade": "A", "Score": 9}, {"date": ISODate ("2014-01-14T00 : 00: 00Z ")," оценка ":" A "," оценка ": 13}, {" дата ": ISODate (" 2013-02-07T00: 00: 00Z ")," оценка ":" A ", "оценка": 10}, {"дата": ISODate ("2012-04-30T00: 00: 00Z"), "оценка": "А", "оценка": 11}], "имя": "Клуб Macanudo (Cigar Bar) "," restaurant_id ":" 405264 06 "} {"_id": ObjectId ("564c2d949eb21ad392f194e1"), "оценки": [{"дата": ISODate ("2015-01-15T00: 00: 00Z"), "оценка": "А", "оценка": 11 }, {"date": ISODate ("2014-08-11T00: 00: 00Z"), "grade": "A", "score": 9}, {"date": ISODate ("2013-06-18T00 : 00: 00Z ")," оценка ":" A "," оценка ": 7}, {" дата ": ISODate (" 2013-01-24T00: 00: 00Z ")," оценка ":" A ", "оценка": 2}, {"дата": ISODate ("2012-06-11T00: 00: 00Z"), "оценка": "А", "оценка": 11}], "имя": "Shoolbred'S" , "restaurant_id": "41302014"} {"_id": ObjectId ("564c2d949eb21ad392f19580"), "grades": [{"date": ISODate ("2014-12-27T00: 00: 00Z"), "grade": "A", "score": 11 }, {"date": ISODate ("2014-08-11T00: 00: 00Z"), "grade": "A", "score": 9}, {"date": ISODate ("2014-02-24T00 : 00: 00Z ")," оценка ":" A "," оценка ": 10}, {" дата ": ISODate (" 2013-01-08T00: 00: 00Z ")," оценка ":" A ", "оценка": 12}, {"дата": ISODate ("2012-06-27T00: 00: 00Z"), "оценка": "А", "оценка": 6}, {"дата": ISODate (" 2012-01-26T00: 00: 00Z ")," оценка ":" А "," оценка " : 5}], "name": "Cabana", "restaurant_id": "41309951"} {"_id": ObjectId ("564c2d949eb21ad392f1aae6"), "grades": [{"date": ISODate ("2015-01-06T00: 00: 00Z"), "grade": "A", "score": 10 }, {"date": ISODate ("2014-08-11T00: 00: 00Z"), "grade": "A", "Score": 9}, {"date": ISODate ("2014-01-30T00 : 00: 00Z ")," grade ":" B "," Score ": 15}]," name ":" Obao Noodles & Bbq "," restaurant_id ":" 41585019 "} >
Примечание. Этот вывод генерируется с использованием сервера MongoDB версии 3.6.
Улучшите этот пример решения и опубликуйте свой код через Disqus.
Предыдущий: Напишите запрос MongoDB, чтобы найти идентификатор ресторана, название и оценки для тех ресторанов, которые достигли оценки «А» и набрали 11 баллов по ISODate «2014-08-11T00: 00: 00Z» среди многих дат опросов.
Далее: Написать запрос MongoDB, чтобы найти идентификатор ресторана, название, адрес и географическое местоположение для тех ресторанов, где 2-й элемент массива координат содержит значение, которое больше 42 и до 52.
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования