Чтение документов
Чтобы применить фильтры определенных значений, мы можем передать конкретные значения команде find()
. Вот SQL-запрос:
SELECT * FROM Table1 WHERE name = 'ABC'
, что эквивалентно следующему в MongoDB
(уведомление Collection1
для Table1
):
db.Collection1.find({name: 'ABC'})
Мы можем связать count()
, чтобы получить количество результатов, pretty()
, чтобы получить читаемый результат. Результаты могут быть дополнительно сужены путем добавления дополнительных параметров:
db.Collection1.find({name: 'ABC', rollNo: 5})
Важно отметить, что по умолчанию эти фильтры И объединены. Чтобы применить фильтр ИЛИ , нам нужно использовать $or
. Эти фильтры будут указаны в зависимости от структуры документа. Пример: для атрибута объекта name
для объекта school
нам нужно указать фильтр, например "school.name" = 'AUHS'
Здесь мы используем обозначение DOT , пытаясь получить доступ к вложенному полю name
поля school
. Также обратите внимание, что фильтры заключены в кавычки , без которых мы получим синтаксические ошибки.
Может быть выполнено совпадение равенства для массивов:
- на всех массивах
- на основе любого элемента
- на основе конкретного элемента
- более сложные совпадения с использованием операторов
В следующем запросе:
db.Collection1.find({name: ['ABC','XYZ']})
MongoDB
собирается идентифицировать документы по точному совпадению с массивом из одного или нескольких значений. Теперь для этих типов запросов важен порядок элементов, что означает, что мы будем сопоставлять только те документы, которые имеют ABC
с последующими и XYZ
, а только 2 элементов массива name
{name:["ABC","GHI","XYZ"]},
{name:["DEF","ABC","XYZ"]}
В приведенном выше документе предположим, что нам нужно получить все документы, где ABC
- первый элемент. Итак, мы будем использовать следующий фильтр:
db.Schools.find({'name.0': 'ABC' })