MongoDB Exercise - найти идентификатор ресторана, название и оценки для тех ресторанов, которые достигли определенного уровня, набрать баллы на определенную дату
Напишите запрос MongoDB, чтобы найти идентификатор ресторана, его название и оценки для тех ресторанов, которые достигли оценки «А» и набрали 11 баллов по 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.date": ISODate("2014-08-11T00:00:00Z"),
"grades.grade":"A" ,
"grades.score" : 11
},
{"restaurant_id" : 1,"name":1,"grades":1}
);
Выход:
{"_id": ObjectId ("564c2d939eb21ad392f17648"), "grades": [{"date": ISODate ("2014-08-11T00: 00: 00Z"), "grade": "A", "score": 13 }, {"date": ISODate ("2013-07-22T00: 00: 00Z"), "grade": "A", "score": 9}, {"date": ISODate ("2013-03-14T00 : 00: 00Z ")," оценка ":" A "," оценка ": 12}, {" дата ": ISODate (" 2012-07-02T00: 00: 00Z ")," оценка ":" A ", "оценка": 11}, {"дата": ISODate ("2012-02-02T00: 00: 00Z"), "оценка": "А", "оценка": 10}, {"дата": ISODate (" 2011-08-24T00: 00: 00Z ")," оценка ":" А "," оценка ": 11}]," name ":" Neary'S Pub "," restaurant_id ":" 40365871 "} {"_id": ObjectId ("564c2d939eb21ad392f17721"), "grades": [{"date": ISODate ("2014-08-11T00: 00: 00Z"), "grade": "A", "score": 11 }, {"date": ISODate ("2013-12-10T00: 00: 00Z"), "grade": "A", "Score": 9}, {"date": ISODate ("2013-06-10T00 : 00: 00Z ")," оценка ":" A "," оценка ": 12}, {" дата ": ISODate (" 2012-06-08T00: 00: 00Z ")," оценка ":" A ", "оценка": 13}, {"дата": ISODate ("2012-01-25T00: 00: 00Z"), "оценка": "А", "оценка": 8}, {"дата": ISODate (" 2011-09-13T00: 00: 00Z ")," оценка ":" А "," оценка " : 12}], "name": "Ресторан Don Filippo", "restaurant_id": "40372417"} {"_id": ObjectId ("564c2d949eb21ad392f179e7"), "оценки": [{"дата": ISODate ("2014-08-11T00: 00: 00Z"), "оценка": "А", "оценка": 6 }, {"date": ISODate ("2013-08-29T00: 00: 00Z"), "grade": "A", "score": 12}, {"date": ISODate ("2013-04-25T00 : 00: 00Z ")," оценка ":" C "," оценка ": 2}, {" дата ": ISODate (" 2012-10-23T00: 00: 00Z ")," оценка ":" A ", "оценка": 13}, {"дата": ISODate ("2012-04-16T00: 00: 00Z"), "оценка": "А", "оценка": 11}, {"дата": ISODate (" 2011-11-15T00: 00: 00Z ")," оценка ":" А "," оценка " : 12}], "name": "Ресторан Mustang Sally'S", "restaurant_id": "40397374"} {"_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 ("564c2d949eb21ad392f17ce9"), "grades": [{"date": ISODate ("2014-08-11T00: 00: 00Z"), "grade": "A", "score": 8 }, {"date": ISODate ("2014-01-09T00: 00: 00Z"), "grade": "B", "Score": 27}, {"date": ISODate ("2013-06-11T00 : 00: 00Z ")," оценка ":" A "," оценка ": 4}, {" дата ": ISODate (" 2012-10-09T00: 00: 00Z ")," оценка ":" B ", "оценка": 19}, {"дата": ISODate ("2012-05-10T00: 00: 00Z"), "оценка": "А", "оценка": 11}, {"дата": ISODate (" 2011-11-23T00: 00: 00Z ")," оценка ":" А "," оценка " : 9}], "name": "Marino'S Pizza & Restaurant", "restaurant_id": "40560917"} {"_id": ObjectId ("564c2d949eb21ad392f17e98"), "оценки": [{"дата": ISODate ("2015-01-05T00: 00: 00Z"), "оценка": "А", "оценка": 9 }, {"date": ISODate ("2014-08-11T00: 00: 00Z"), "grade": "A", "Score": 10}, {"date": ISODate ("2014-03-04T00 : 00: 00Z ")," оценка ":" B "," оценка ": 22}, {" дата ": ISODate (" 2013-09-13T00: 00: 00Z ")," оценка ":" A ", «оценка»: 5}, {«дата»: ISODate («2013-01-16T00: 00: 00Z»), «оценка»: «А», «оценка»: 11}], «имя»: «Кофе Джина» Магазин "," restaurant_id ":" 40614916 "} {"_id": ObjectId ("564c2d949eb21ad392f17fff"), "grades": [{"date": ISODate ("2014-08-11T00: 00: 00Z"), "grade": "A", "score": 10 }, {"date": ISODate ("2014-02-20T00: 00: 00Z"), "grade": "A", "score": 7}, {"date": ISODate ("2013-08-29T00 : 00: 00Z ")," оценка ":" A "," оценка ": 7}, {" дата ": ISODate (" 2013-03-29T00: 00: 00Z ")," оценка ":" A ", "оценка": 10}, {"дата": ISODate ("2012-03-07T00: 00: 00Z"), "оценка": "А", "оценка": 12}, {"дата": ISODate (" 2011-11-18T00: 00: 00Z ")," оценка ":" А "," оценка " : 11}, {"date": ISODate ("2011-10-12T00: 00: 00Z"), "grade": "P", "Score": 4}], "name": "Union Cafe Restaurant", "restaurant_id": "40698823"} {"_id": ObjectId ("564c2d949eb21ad392f1846b"), "оценки": [{"дата": ISODate ("2014-08-11T00: 00: 00Z"), "оценка": "А", "оценка": 10 }, {"date": ISODate ("2013-08-28T00: 00: 00Z"), "grade": "A", "score": 9}, {"date": ISODate ("2012-09-05T00 : 00: 00Z ")," оценка ":" A "," оценка ": 11}, {" дата ": ISODate (" 2011-08-25T00: 00: 00Z ")," оценка ":" A ", "score": 7}], "name": "Jojo'S Pizza", "restaurant_id": "40892913"} {"_id": ObjectId ("564c2d949eb21ad392f184b9"), "grades": [{"date": ISODate ("2014-08-11T00: 00: 00Z"), "grade": "A", "score": 12 }, {"date": ISODate ("2013-08-29T00: 00: 00Z"), "grade": "A", "score": 2}, {"date": ISODate ("2013-04-01T00 : 00: 00Z ")," оценка ":" A "," оценка ": 9}, {" дата ": ISODate (" 2012-10-23T00: 00: 00Z ")," оценка ":" A ", "оценка": 5}, {"дата": ISODate ("2011-09-30T00: 00: 00Z"), "оценка": "А", "оценка": 11}], "имя": "Cosi Sandwich Bar "," restaurant_id ":" 40912833 "} {"_id": ObjectId ("564c2d949eb21ad392f184f9"), "grades": [{"date": ISODate ("2014-08-11T00: 00: 00Z"), "grade": "A", "score": 11 }, {"date": ISODate ("2014-02-04T00: 00: 00Z"), "grade": "A", "Score": 10}, {"date": ISODate ("2013-06-19T00 : 00: 00Z ")," оценка ":" A "," оценка ": 2}, {" дата ": ISODate (" 2012-06-25T00: 00: 00Z ")," оценка ":" A ", "оценка": 12}, {"дата": ISODate ("2012-02-08T00: 00: 00Z"), "оценка": "A", "оценка": 5}], "имя": "Cosi" , "restaurant_id": "40922983"} {"_id": ObjectId ("564c2d949eb21ad392f1851c"), "оценки": [{"дата": ISODate ("2014-08-11T00: 00: 00Z"), "оценка": "А", "оценка": 10 }, {"date": ISODate ("2014-02-13T00: 00: 00Z"), "grade": "A", "score": 12}, {"date": ISODate ("2013-06-04T00 : 00: 00Z ")," оценка ":" B "," оценка ": 15}, {" дата ": ISODate (" 2012-12-12T00: 00: 00Z ")," оценка ":" B ", "оценка": 17}, {"дата": ISODate ("2012-05-17T00: 00: 00Z"), "оценка": "А", "оценка": 11}], "имя": "Исла Оф Verde "," restaurant_id ":" 40927513 "} {"_id": ObjectId ("564c2d949eb21ad392f18699"), "grades": [{"date": ISODate ("2014-08-11T00: 00: 00Z"), "grade": "A", "score": 9 }, {"date": ISODate ("2013-08-19T00: 00: 00Z"), "grade": "A", "Score": 13}, {"date": ISODate ("2012-08-23T00 : 00: 00Z ")," оценка ":" A "," оценка ": 12}, {" дата ": ISODate (" 2012-02-10T00: 00: 00Z ")," оценка ":" A ", "оценка": 5}, {"дата": ISODate ("2011-10-20T00: 00: 00Z"), "оценка": "А", "оценка": 11}], "имя": "Бамбуковый сад" Китайский ресторан "," restaurant_id ":" 40970116 "} {"_id": ObjectId ("564c2d949eb21ad392f189e8"), "grades": [{"date": ISODate ("2014-08-11T00: 00: 00Z"), "grade": "A", "score": 10 }, {"date": ISODate ("2014-03-07T00: 00: 00Z"), "grade": "A", "Score": 11}, {"date": ISODate ("2013-08-27T00 : 00: 00Z ")," оценка ":" A "," оценка ": 9}, {" дата ": ISODate (" 2013-03-28T00: 00: 00Z ")," оценка ":" A ", "оценка": 13}, {"дата": ISODate ("2012-10-05T00: 00: 00Z"), "оценка": "А", "оценка": 12}, {"дата": ISODate (" 2012-05-07T00: 00: 00Z ")," оценка ":" А "," оценка ": 12}, {" date ": ISODate (" 2011-12-08T00: 00: 00Z ")," grade ":" A "," Score ": 9}]," name ":" Кубинская кухня Тины " , "restaurant_id": "41067289"} {"_id": ObjectId ("564c2d949eb21ad392f18b3d"), "grades": [{"date": ISODate ("2014-08-11T00: 00: 00Z"), "grade": "A", "score": 8 }, {"date": ISODate ("2014-01-27T00: 00: 00Z"), "grade": "A", "Score": 10}, {"date": ISODate ("2013-01-16T00 : 00: 00Z ")," оценка ":" A "," оценка ": 11}, {" дата ": ISODate (" 2012-05-15T00: 00: 00Z ")," оценка ":" A ", "оценка": 13}, {"дата": ISODate ("2011-12-22T00: 00: 00Z"), "оценка": "A", "оценка": 5}, {"дата": ISODate (" 2011-08-18T00: 00: 00Z ")," оценка ":" А "," оценка " : 11}], "name": "Bar Americain", "restaurant_id": "41101050"} {"_id": ObjectId ("564c2d949eb21ad392f190a5"), "оценки": [{"дата": ISODate ("2014-08-11T00: 00: 00Z"), "оценка": "А", "оценка": 11 }, {"date": ISODate ("2014-02-07T00: 00: 00Z"), "grade": "A", "Score": 12}, {"date": ISODate ("2012-12-05T00 : 00: 00Z ")," оценка ":" A "," оценка ": 8}, {" дата ": ISODate (" 2012-07-13T00: 00: 00Z ")," оценка ":" A ", "оценка": 12}, {"дата": ISODate ("2012-02-08T00: 00: 00Z"), "оценка": "А", "оценка": 9}], "имя": "Метро" , "restaurant_id": "41230741"} {"_id": ObjectId ("564c2d949eb21ad392f19103"), "grades": [{"date": ISODate ("2014-08-11T00: 00: 00Z"), "grade": "A", "score": 12 }, {"date": ISODate ("2014-01-29T00: 00: 00Z"), "grade": "A", "score": 12}, {"date": ISODate ("2013-07-22T00 : 00: 00Z ")," оценка ":" C "," оценка ": 37}, {" дата ": ISODate (" 2013-01-11T00: 00: 00Z ")," оценка ":" A ", "оценка": 9}, {"дата": ISODate ("2012-05-15T00: 00: 00Z"), "оценка": "А", "оценка": 11}], "имя": "Пицца & Пита "," restaurant_id ":" 41236336 "} {"_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 ("564c2d949eb21ad392f196c2"), "grades": [{"date": ISODate ("2014-08-11T00: 00: 00Z"), "grade": "A", "score": 4 }, {"date": ISODate ("2014-01-27T00: 00: 00Z"), "grade": "A", "score": 13}, {"date": ISODate ("2013-07-31T00 : 00: 00Z ")," оценка ":" A "," оценка ": 13}, {" дата ": ISODate (" 2012-07-31T00: 00: 00Z ")," оценка ":" A ", "оценка": 11}, {"дата": ISODate ("2011-12-19T00: 00: 00Z"), "оценка": "B", "оценка": 19}], "имя": "Остров Майка" Гриль-ресторан "," restaurant_id ":" 4 1330799 "} {"_id": ObjectId ("564c2d949eb21ad392f198b7"), "grades": [{"date": ISODate ("2014-08-11T00: 00: 00Z"), "grade": "B", "score": 17 }, {"date": ISODate ("2014-01-28T00: 00: 00Z"), "grade": "A", "Score": 9}, {"date": ISODate ("2013-04-04T00 : 00: 00Z ")," оценка ":" A "," оценка ": 13}, {" дата ": ISODate (" 2012-10-04T00: 00: 00Z ")," оценка ":" A ", "оценка": 11}, {"дата": ISODate ("2012-02-23T00: 00: 00Z"), "оценка": "А", "оценка": 9}], "имя": "Питание особняков "," restaurant_id ":" 41365614 "} Типа "это" для более
Примечание. Этот вывод генерируется с использованием сервера MongoDB версии 3.6.
Улучшите этот пример решения и опубликуйте свой код через Disqus.
Предыдущий: Напишите запрос MongoDB, чтобы найти идентификатор ресторана, название, район и кухню для тех ресторанов, в которых готовили блюда, кроме «Американский» и «Китайский», или название ресторана начинается с буквы «Wil».
Далее: Написать запрос MongoDB, чтобы найти идентификатор ресторана, название и оценки для тех ресторанов, где 2-й элемент массива оценок содержит оценку «А» и оценку 9 на ISODate «2014-08-11T00: 00: 00Z» ,
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования