MongoDB: метод db.collection.findOne ()
db.collection.findOne
Метод db.collection.findOne () используется для возврата одного документа, который удовлетворяет заданным критериям запроса. Если запрос удовлетворяет несколько документов, этот метод возвращает первый документ в соответствии с естественным порядком, который отражает порядок документов на диске. В ограниченных коллекциях естественный порядок такой же, как порядок вставки. Если ни один документ не удовлетворяет запросу, метод возвращает ноль.
Синтаксис:
db.collection.findOne (запрос, проекция)
Параметр: с
название | Описание | Необходимые / Необязательный | Тип |
---|---|---|---|
запрос | Определяет критерии выбора запроса, используя операторы запроса | Необязательный | документ |
проекция | Определяет поля для возврата с использованием операторов проекции. Опустите этот параметр, чтобы вернуть все поля в соответствующем документе. | Необязательный | документ |
Параметр проекции принимает документ следующей формы:
{ field1: <boolean>, field2: <boolean> ... }
<Логическое> может быть одним из следующих значений включения или исключения:
- 1 или правда, чтобы включить. Метод findOne () всегда включает поле _id, даже если это поле не указано явно в параметре проекции.
- 0 или ложь, чтобы исключить.
Аргумент проекции не может смешивать спецификации включения и исключения, за исключением исключения поля _id.
Возвращает
Один документ, который удовлетворяет критериям, указанным в качестве первого аргумента этого метода. Если вы укажете параметр проекции, findOne () вернет документ, который содержит только поля проекции. Поле _id всегда включено, если вы явно не исключаете его.
Образец документа в коллекции ресторанов:
{
"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"
}
.....
Пример: MongoDB: метод db.collection.findOne () с пустой спецификацией запроса
Следующая операция возвращает один документ из коллекции ресторанов.
db.restaurants.findOne();
Выход:
{ "_id": ObjectId ("55c3043ab165fa6355ec5c89"), "адрес" : { «здание»: «1007», "координ": [ -73,856077, 40.848447 ], "улица": "Моррис Парк Авеню", почтовый индекс: 10462 }, "Боро": "Бронкс", "кухня": "пекарня", "оценки" : [ { «date»: ISODate («2014-03-03T00: 00: 00Z»), "оценка отлично", "оценка": 2 }, { «date»: ISODate («2013-09-11T00: 00: 00Z»), "оценка отлично", "оценка": 6 }, { «date»: ISODate («2013-01-24T00: 00: 00Z»), "оценка отлично", "оценка": 10 }, { «date»: ISODate («2011-11-23T00: 00: 00Z»), "оценка отлично", "оценка": 9 }, { «date»: ISODate («2011-03-10T00: 00: 00Z»), "оценка": "B", "оценка": 14 } ], "name": "Morris Park Bake Shop", "restaurant_id": "30075445" }
Пример: MongoDB: метод db.collection.findOne () со спецификацией запроса
Следующая операция возвращает первый соответствующий документ из коллекции ресторанов, где либо имя поля в документах начинается с буквы G, где координата поля во встроенном адресе документа больше 90.
db.restaurants.findOne(
{
$or: [
{ "name" : /^G/ },
{ "address.coord": { $gt: 90 } }
]
}
);
Выход
{ "_id": ObjectId ("55c3043ab165fa6355ec5c9b"), "адрес" : { "здание": "522", "координ": [ -73,95171, 40.767461 ], "улица": "Восточная 74 улица", почтовый индекс: 10021 }, "Город": "Манхэттен", «кухня»: «американская», "оценки" : [ { «date»: ISODate («2014-09-02T00: 00: 00Z»), "оценка отлично", "оценка": 12 }, { «date»: ISODate («2013-12-19T00: 00: 00Z»), "оценка": "B", "оценка": 16 }, { «date»: ISODate («2013-05-28T00: 00: 00Z»), "оценка отлично", "оценка": 9 }, { «date»: ISODate («2012-12-07T00: 00: 00Z»), "оценка отлично", "оценка": 13 }, { «date»: ISODate («2012-03-29T00: 00: 00Z»), "оценка отлично", "оценка": 11 } ], "имя": "Славная еда", "restaurant_id": "40361521" }
Пример: MongoDB: метод db.collection.findOne (), исключающий указанные поля
Следующая операция возвращает документ в коллекции ресторанов, где поле theisine содержит элемент elementItalian и возвращает все поляsexceptthe_id и поле оценок.
db.restaurants.findOne(
{ "cuisine": "Italian" },
{ _id: 0, grades: 0 }
);
Выход:
{ "адрес" : { «здание»: «10004», "координ": [ -74,03400479999999, 40.6127077 ], "улица": "4 проспект", "почтовый индекс": "11209" }, "Боро": "Бруклин", "кухня": "итальянская", "имя": "Филадельфия Гриль Экспресс", "restaurant_id": "40364305" }
Получить данные о ресторанах здесь
Предыдущая: db.collection. метод findAndModify ()
Далее: метод db.collection.getIndexes ()
Новый контент: Composer: менеджер зависимостей для PHP , R программирования