MongoDB: метод db.collection.find ()
db.collection.find
Метод db.collection.find () используется для выполнения запроса к документу в коллекции и возвращает курсор к выбранным документам.
Синтаксис:
db.collection.find (запрос, проекция)
Параметры:
название | Описание | Необходимые / Необязательный | Тип |
---|---|---|---|
запрос | Определяет критерии выбора, используя операторы запросов. Чтобы вернуть все документы в коллекции, пропустите этот параметр или передайте пустой документ ({}). | Необязательный | документ | проекция | Определяет поля для возврата с использованием операторов проекции. Чтобы вернуть все поля в соответствующем документе, пропустите этот параметр. | Необязательный | документ |
Параметр проекции принимает документ следующей формы:
{ field1: <boolean>, field2: <boolean> ... }
Значение <boolean> может быть любым из следующих:
- 1 или true, чтобы включить поле. Метод find () всегда включает поле _id, даже если поле явно не указано для возврата в параметре проекции.
- 0 или false, чтобы исключить поле.
Проекция не может содержать и включать, и исключать спецификации, за исключением исключения поля _id. В проекциях, которые явно включают поля, поле _id является единственным полем, которое вы можете явно исключить.
Возвращает:
↑- Курсор на документы, которые соответствуют критериям запроса. Когда метод find () «возвращает документы», метод фактически возвращает курсор к документам.
- Если find () включает аргумент проекции, соответствующие документы содержат только поля проекции и поле _id. Вы можете при желании исключить поле _id.
- Выполнение find () непосредственно в оболочке mongo автоматически выполняет итерацию курсора для отображения до 20 первых документов. Введите его, чтобы продолжить итерацию.
- Чтобы получить доступ к возвращенным документам с помощью драйвера, используйте соответствующий механизм обработки курсора для языка драйвера.
Образец документа в коллекции ресторанов:
{
"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"
}
........
Пример: найти все документы в коллекции
В следующем примере будут извлечены все документы из коллекционных ресторанов.
> db.restaurants.find();
Выход:
> db.restaurants.find (); {"_id": ObjectId ("55c3043ab165fa6355ec5c89"), "address": {"building": "1007", "ord": [-73.856077, 40.848447], "street": "Morris Park Ave", "почтовый индекс": "10462"}, "местный": "Бронкс", "кухня": "Пекарня", "сорта": [{"дата": ISODate ("2014-03-03T00: 00: 00Z"), "класс": «А», «оценка»: 2 }, {"date": ISODate ("2013-09-11T00: 00: 00Z"), "grade": "A", "score": 6}, {"date": ISODate ("2013-01-24T00 : 00: 00Z ")," оценка ":" A "," оценка ": 10}, {" дата ": ISODate (" 2011-11-23T00: 00: 00Z ")," оценка ":" A ", "оценка": 9}, {"дата": ISODate ("2011-03-10T00: 00: 00Z"), "оценка": "B", "оценка": 14} ], "name": "Morris Park Bake Shop", "restaurant_id": "30075445"} {"_id": ObjectId ("55c3043ab165fa6355ec5c8a"), "address": {"building": "469", "corre": [-73.961704, 40.662942], "street": "Avenue Flatbush Avenue", "zipcode": " 11225 "}," городской округ ":" Бруклин "," кухня ":" Гамбургеры "," сорта ": [{" date ": ISODate (" 2014-12-30T00: 00: 00Z ")," grade ":" Оценка ": 8}, {" дата ": ISODate (" 2014-07-01T00: 00: 00Z ")," оценка ":" B "," оценка ": 23}, {" дата ": ISODate (" 2013- 04-30T00: 00: 00Z ")," оценка ":" A "," оценка ": 12}, {" дата ": ISODate (" 2012-05-08T00: 00: 00Z ")," оценка ":" A "," score ": 12}]," name ":" Wendy'S "," restaurant_id ":" 30112340 "} {"_id": ObjectId ("55c3043ab165fa6355ec5c8b"), "address": {"building": "351", "corre": [-73.98513559999999, 40.7676919], "street": "West 57 Street", "почтовый индекс": "10019"}, "городской округ": "Манхэттен", "кухня": "ирландская", "классы": [{"дата": ISODate ("2014-09-06T00: 00: 00Z"), "класс": «А», "оценка": 2}, {"дата": ISODate ("2013-07-22T00: 00: 00Z"), "оценка": "А", "оценка": 11}, {"дата": ISODate (" 2012-07-31T00: 00: 00Z ")," оценка ":" A "," оценка ": 12}, {" дата ": ISODate (" 2011-12-29T00: 00: 00Z ")," оценка " : "A", "score": 12}], "name": "Dj Reynolds Pub And Restaurant", "restaurant_id" : "30191841"} {"_id": ObjectId ("55c3043ab165fa6355ec5c8c"), "address": {"building": "2780", "ord": [-73.98241999999999, 40.579505], "street": "Stillwell Avenue", "почтовый индекс": " 11224 "}," borough ":" Brooklyn "," kitchen ":" American "," grades ": [{" date ": ISODate (" 2014-06-10T00: 00: 00Z ")," grade ":" "," оценка ": 5}, {" дата ": ISODate (" 2013-06-05T00: 00: 00Z ")," оценка ":" А "," оценка ": 7}, {" дата ": ISODate ("2012-04-13T00: 00: 00Z"), "оценка": "A", "оценка": 12}, {"дата": ISODate ("2011-10-12T00: 00: 00Z"), " оценка ":" А "," оценка ": 12}]," имя ":" Поставщик ривьеры "," идентификатор ресторана ":" 40356018 " } {"_id": ObjectId ("55c3043ab165fa6355ec5c8d"), "address": {"building": "97-22", "ord": [-73.8601152, 40.7311739], "street": "63 Road", "почтовый индекс" : "11374"}, "городской округ": "королевы", "кухня": "еврейская / кошерная", "классы": [{"date": ISODate ("2014-11-24T00: 00: 00Z"), " оценка ":" Z "," оценка ": 20}, {"дата": ISODate ("2013-01-17T00: 00: 00Z"), "оценка": "A", "оценка": 13}, {"дата": ISODate ("2012-08- 02T00: 00: 00Z ")," оценка ":" A "," оценка ": 13}, {" дата ": ISODate (" 2011-12-15T00: 00: 00Z ")," оценка ":" B " , "score": 25}], "name": "Tov Kosher Kitchen", "restaurant_id": "40356068"} {"_id": ObjectId ("55c3043ab165fa6355ec5c8e"), "address": {"building": "8825", "corre": [-73.8803827, 40.7643124], "street": "Бульвар Астории", "почтовый индекс": " 11369 "}," местный ":" Королевы "," кухня ":" американская "," классы ": [{" date ": ISODate (" 2014-11-15T00: 00: 00Z ")," grade ":" Z "," sco re ": 38}, {" дата ": ISODate (" 2014-05-02T00: 00: 00Z ")," оценка ":" A "," оценка ": 10}, {" дата ": ISODate (" 2013 -03-02T00: 00: 00Z ")," оценка ":" A "," оценка ": 7}, {" дата ": ISODate (" 2012-02-10T00: 00: 00Z ")," оценка ": «А», «оценка»: 13}], «имя»: «Брунос на бульваре», «restaurant_id»: «4035615 1 "} {"_id": ObjectId ("55c3043ab165fa6355ec5c8f"), "address": {"building": "2206", "ord": [-74.1377286, 40.6119572], "street": "бульвар Победы", "почтовый индекс": " 10314 "}," городской округ ":" Статен-Айленд "," кухня ":" еврейская / кошерная "," классы ": [{" дата ": ISODate (" 2014-10-06T00: 00: 00Z ")," класс " " : "A", "оценка": 9}, {"дата": ISODate ("2014-05-20T00: 00: 00Z"), "оценка": "A", "оценка": 12}, {"дата ": ISODate (" 2013-04-04T00: 00: 00Z ")," оценка ":" A "," оценка ": 12}, {" дата ": дата ISO (" 2012-01-24T00: 00: 00Z ")," grade ":" A "," score ": 9}]," name ":" Kosher Island "," restaurant _id ":" 4035644 2 "} .........
Пример: поиск документов, соответствующих критериям запроса
В следующем примере будут извлечены все документы из коллекционных ресторанов, которые соответствуют критерию запроса: больше 110.
db.restaurants.find( { "address.cord": { $get: 110 } } );
Выход:
> db.restaurants.find ({"address.cord": {$ get: 110}}); {"_id": ObjectId ("55c3043ab165fa6355ec5d73"), "address": {"building": "155157", "corre": [153.1628795, -28.0168595], "street": "Christie St.", "zipcode": "10002"}, "городской округ": "Манхэттен", "кухня": "Стейк", "сорта": [{"дата": ISODate ("2014-11-12T00: 00: 00Z"), "класс": "Оценка" : 12}, {"дата": ISODate ("2013-09-24T00: 00: 00Z"), "оценка": "A", "оценка": 7}, {"дата": ISODate ("2013-04 -12T00: 00: 00Z ")," оценка ":" B "," оценка ": 26}, {" дата ": ISODate (" 2012-09-21T00: 00: 00Z ")," оценка ":" A "," оценка ": 5}, {" дата ": ISODate (" 2012-04-10T00: 00: 00Z ")," оценка ":" А "," оценка ": 2}], "name": "Стейкхаус Сэмми", "restaurant_id": "40368552"}
Пример: поиск документов с использованием Query for Equality
В следующем примере будут извлечены все документы из коллекционных ресторанов, которые удовлетворяют критерию равенства кухни Эфиопии.
db.restaurants.find( {"cuisine" : "Ethiopian" } );
Выход:
> db.restaurants.find ({"kitchen": "Эфиопская"}); {"_id": ObjectId ("55c3043ab165fa6355ec5f2d"), "address": {"building": "1239", "corre": [-73.9585846, 40.8097806], "street": "Амстердамский проспект", "почтовый индекс": " 10027 "}," городской округ ":" Манхэттен "," кухня ":" эфиопская "," классы ": [{" date ": ISODate (" 2014-03-03T00: 00: 00Z ")," grade ":" Как core ": 9}, {" date ": ISODate (" 2013-02-02T00: 00: 00Z ")," grade ":" A "," score ": 13}, {" date ": ISODate (" 2011 -12-27T00: 00: 00Z ")," оценка ":" A "," оценка ": 7}, {" дата ": ISODate (" 2011-09-23T00: 00: 00Z ")," оценка ": "A", "score": 12}], "name": "Masawa", "restaurant_id": "40388091"} {"_id": ObjectId ("55c3043ab165fa6355ec68d6"), "address": {"building": "124", "ord": [-74.00024599999999, 40.729905], "street": "Macdougal Street", "zipcode": " 10012 "}," городской округ ":" Манхэттен "," кухня ":" эфиопская "," классы ": [{" date ": ISODate (" 2014-08-08T00: 00: 00Z ")," grade ":" "," оценка ": 13}, {" дата ": ISODate (" 2013-07-18T00: 00: 00Z ")," оценка ":" А "," оценка ": 4}, {" дата ": ISODate ("2012-07-17T00: 00: 00Z"), "оценка": "A", "оценка": 5}, {"дата": ISODate ("2011-12-12T00: 00: 00Z"), " оценка: "A", "оценка": 12}], "имя": "Мескерем", "restaurant_id": "40792697"} {"_id": ObjectId ("55c3043ab165fa6355ec6943"), "address": {"building": "650", "corre": [-73.99346299999999, 40.761925], "street": "10 Avenue", "zipcode": " 10036 "}," городской округ ":" Манхэттен "," кухня ":" эфиопская "," классы ": [{" date ": ISODate (" 2014-07-14T00: 00: 00Z ")," grade ":" "," Sco re ": 12}, {" дата ": ISODate (" 2014-01-14T00: 00: 00Z ")," оценка ":" A "," оценка ": 12}, {" дата ": ISODate (" 2013 -02-12T00: 00: 00Z ")," grade ":" A "," Score ": 11}]," name ":" Эфиопский ресторан Queen of Sheba "," restaurant_id ":" 40813634 "} {"_id": ObjectId ("55c3043ab165fa6355ec7000"), "address": {"building": "338", "corre": [-73.9868924, 40.7264833], "street": "East 6 Street", "zipcode": "10003"}, "городской округ": "Манхэттен", "кухня": "эфиопская", "классы": [{"дата": ISODate ("2014-08-15T00: 00: 00Z"), "класс": "A", "sc руда ": 10}, {" дата ": ISODate (" 2013-07-12T00: 00: 00Z ")," оценка ":" A "," оценка ": 13}, {" дата ": ISODate (" 2012 -07-16T00: 00: 00Z ")," оценка ":" A "," оценка ": 13}, {" дата ": ISODate (" 2012-02-27T00: 00: 00Z ")," оценка ": "A", "оценка": 2}, {"дата": ISODate ("2011-09-20T00: 00: 00Z"), "оценка": "A", "sco re ": 13}]," name ":" Awash Ethiopian Restaurant "," restaurant_id ":" 41044592 "} {"_id": ObjectId ("55c3043ab165fa6355ec7412"), "address": {"building": "2084", "corre": [-73.9565946, 40.8022824], "street": "Бульвар Фредрика Дугласа", "почтовый индекс": "10026"}, "городской округ": "Манхэттен", "кухня": "эфиопская", "классы": [{"дата": ISODate ("2014-08-28T00: 00: 00Z"), "класс") : "A", "оценка": 8}, {"дата": ISODate ("2014-01-10T00: 00: 00Z"), "оценка": "A", "оценка": 5}, {"дата ": ISODate (" 2013-03-15T00: 00: 00Z ")," оценка ":" A "," оценка ": 7}, {" дата ": ISODate (" 2012-03-13T00: 00: 00Z ") ), "оценка": "A", "оценка": 10}, {"дата": ISODate ("2011-08-30T00: 00: 00Z"), "оценка": "A", "score": 6}], "name": "Zoma", "restaurant_id": "41156869"} ......
Пример: поиск документов с использованием операторов
В следующем примере будут извлечены все документы из коллекционных ресторанов, которые удовлетворяют критериям, то есть оценка находится в пределах указанного значения.
db.restaurants.find({"grades.score" : {$in : [35,40,42,44,46]}});
Выход:
> db.restaurants.find ({"grades.score": {$ in: [35,40,42,44,46]}}); {"_id": ObjectId ("55c3043ab165fa6355ec5ccd"), "address": {"building": "180", "corre": [-73.9788694, 40.7665961], "street": "Центральный парк на юг", "почтовый индекс": "10019"}, "городской округ": "Манхэттен", "кухня": "американская", "классы": [{"дата": ISODate ("2014-12-15T00: 00: 00Z"), "класс": "А", " оценка ": 12}, {" дата ": ISODate (" 2014-08-07T00: 00: 00Z ")," оценка ":" C "," оценка ": 40}, {" дата ": ISODate (" 2013 -07-29T00: 00: 00Z ")," оценка ":" A "," оценка ": 2}, {" дата ": ISODate (" 2012-12-13T00: 00: 00Z ")," оценка ": "A", "оценка": 11}, {"дата": ISODate ("2012-07-30T00: 00: 00Z"), "оценка": "C", "s core ": 4}, {" date ": ISODate (" 2012-02-16T00: 00: 00Z ")," grade ":" A "," Score ": 2}]," name ":" Nyac Main Dining Room "," restaurant_id ":" 40364467 "} {"_id": ObjectId ("55c3043ab165fa6355ec5cfe"), "address": {"building": "910", "ordin ": [-73.9799932, 40.7660886]," улица ":" Седьмая авеню "," почтовый индекс ":" 10019 "}," городской округ ":" Манхэттен "," кухня ":" американская "," классы ": [{" дата ": ISODate (" 2015-01-08T00: 00: 00Z ")," класс ":" Z "," scor e ": 35}, {" дата ": ISODate (" 2014-06-02T00: 00: 00Z ")," оценка ":" B "," оценка ": 19}, {" дата ": ISODate (" 2013 -11-25T00: 00: 00Z ")," оценка ":" A "," оценка ": 12}, {" дата ": ISODate (" 2013-06-24T00: 00: 00Z ")," оценка ": «A», «оценка»: 9}, {«дата»: ISODate («2012-12-04T00: 00: 00Z»), «оценка»: «B», «оценка» ": 24}, {" дата ": ISODate (" 2012-06-14T00: 00: 00Z ")," оценка ":" A "," оценка ": 12}, {" дата ": ISODate (" 2012- 02-24T00: 00: 00Z ")," оценка ":" B "," оценка ": 21}]," name ":" La Parisienne Diner "," restaurant_id ":" 40365633 "} {"_id": ObjectId ("55c3043ab165fa6355ec5d22"), "address": {"building": "5820", "ord": [-73.9002615, 40.885186], "street": "Broadway", "zipcode": "10463 "}," городской округ ":" Бронкс "," кухня ":" американская "," классы ": [{" date ": ISODate (" 2014-02-26T00: 00: 00Z ")," класс ":" A "," оценка ": 5}, {"дата": ISODate ("2013-10-09T00: 00: 00Z"), "оценка": "B", "оценка": 19}, {"дата": ISODate ("2013-05-15T00: 00 : 00Z ")," оценка ":" A "," оценка ": 9}, {" дата ": ISODate (" 2012-11-20T00: 00: 00Z ")," оценка ":" B "," оценка ": 18}, {" дата ": ISODate (" 2011-10-17T00: 00: 00Z ")," оценка ":" A "," оценка ": 10}, { "date": ISODate ("2011-06-22T00: 00: 00Z"), "grade": "C", "Score": 35}], "name": "The Punch Bowl", "restaurant_id": " 40366497 "} {"_id": ObjectId ("55c3043ab165fa6355ec5d4d"), "address": {"building": "1372", "corre": [-73.9870818, 40.7523004], "street": "Broadway", "zipcode": "10018 "}," городской округ ":" Манхэттен "," кухня ":" еврейская / кошерная "," классы ": [{" дата ": ISODate (" 2014-05-01T00: 00: 00Z ")," класс ": "Оценка ": 12}, {" дата ": ISODate (" 2013-11-04T00: 00: 00Z ")," оценка ":" A "," оценка ": 10}, {" дата ": ISODate (" 2013- 05-14T00: 00: 00Z ")," оценка ":" A "," оценка ": 13}, {" дата ": ISODate (" 2012-10-15T00: 00: 00Z ")," оценка ":" C "," оценка ": 40}, {" дата ": ISODate (" 2011-10-18T00: 00: 00Z ")," оценка ":" A "," оценка ": 12}, {" date ": ISODate (" 2011-05-27T00: 00: 00Z ")," grade ":" A "," score ": 5}]," name ":" Mr Broadway Kosher Restaurant "," restaurant_id ":" 40367534 "} {"_id": ObjectId ("55c3043ab165fa6355ec5da0"), "address": {"building": "1011", "corre": [-73.9623333, 40.7757194], "street": "Madison Avenue", "zipcode": " 10075 "}," местный ":" Манхэттен "," кухня ":" американская "," классы ": [{" date ": ISODate (" 2014-05-02T00: 00: 00Z ")," grade ":" "," Sco re ": 10}, {" date ": ISODate (" 2013-10-21T00: 00: 00Z ")," grade ":" B "," Score ": 15}, {" date ": ISODate (" 2013 -04-19T00: 00: 00Z ")," оценка ":" B "," оценка ": 0}, {" дата ": ISODate (" 2012-11-21T00: 00: 00Z ")," оценка ": «C», «оценка»: 40}, {«дата»: ISODate («2012-04-09T00: 00: 00Z»), «оценка»: «B», «scor» e ": 17}]," name ":" Viand Cafe "," restaurant_id ":" 40369753 "}
Пример: поиск документов, включающих и исключающих конкретное поле
В следующем примере будут извлечены все документы из коллекционных ресторанов, включая район города и кухню и исключая поле _id, которое удовлетворяет критериям, то есть координата превышает 100.
db.restaurants.find({ "address.coord": { $gt: 100 }},{ borough: 1, cuisine: 1, address: 1 ,_id :0});
Выход:
> db.restaurants.find ({"address.coord": {$ gt: 100}}, {район: 1, кухня: 1, адрес: 1, _id: 0}); {"address": {"building": "155157", "ord": [153.1628795, -28.0168595], "street": "Christie St.", "zipcode": "10002"}, "borough": "Manhattan "," кухня ":" Стейк "} {"address": {"building": "14", "corre": [104.9179596, 11.5415182], "street": "West Wing", "zipcode": "11430"}, "borough": "Queens", "kitchen": "Кафе / Кофе / Чай"} {"address": {"building": "14", "corre": [104.9179596, 11.5415182], "street": "West Wing", "zipcode": "11430"}, "borough": "Queens", "кухня": "Континенталь"} {"address": {"building": "NKA", "ordin ": [100.6294417, 13.7440888]," street ":" @ West 15Th Street "," zipcode ":" 10004 "}," borough ":" Manhattan "," кухня ":" мексиканская "} {"address": {"building": "W 30TH ST", "ord": [100.6177619, 13.7085011], "street": "10 Th Ave", "zipcode": "10001"}, "borough": " Манхэттен "," кухня ":" американская "}
Получить данные о ресторанах здесь
Предыдущая: метод db.collection.explain ()
Далее: db.collection. метод findAndModify ()
Новый контент: Composer: менеджер зависимостей для PHP , R программирования