кодесурса

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 программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code