Mongodb: как использовать «не равно» в запросах


Вы можете использовать оператор $ne (означающий «не равно») в MongoDB, чтобы найти документы, в которых поле не равно определенному значению.

Этот оператор использует следующий базовый синтаксис:

 db.myCollection.find({' team ': { $ne : " Mavs "}})

В этом конкретном примере выполняется поиск всех документов в коллекции с именем myCollection , где поле команды не равно «Mavs».

Вы также можете использовать оператор $nin (что означает «нет») для поиска документов, в которых поле не соответствует ни одному значению в списке.

Этот оператор использует следующий базовый синтаксис:

 db.myCollection.find({' team ': { $nin : [" Mavs ", " Cavs ", " Spurs "]}})

В этом конкретном примере выполняется поиск всех документов в коллекции с именем myCollection , где поле команды не равно «Mavs», «Cavs» или «Spurs».

Следующие примеры показывают, как использовать каждый метод на практике с командой по сбору платежей со следующими документами:

 db.teams.insertOne({team: " Mavs ", points: 30, rebounds: 8})
db.teams.insertOne({team: " Spurs ", points: 35, rebounds: 12})
db.teams.insertOne({team: " Rockets ", points: 20, rebounds: 7})
db.teams.insertOne({team: " Warriors ", points: 25, rebounds: 5})
db.teams.insertOne({team: " Cavs ", points: 23, rebounds: 9})

Пример 1: «Другой» запрос

Следующий код показывает, как найти все документы в коллекции Teams , где поле «team» не равно «Mavs»:

 db.teams.find({' team ': { $ne : " Mavs "}})

Этот запрос возвращает следующие документы:

 { _id: ObjectId("6203ec0e1e95a9885e1e7658"),
  team: 'Cavs',
  points: 23,
  rebounds: 9 }
{ _id: ObjectId("6203ec0e1e95a9885e1e7656"),
  team: 'Rockets',
  points: 20,
  rebounds: 7 }
{ _id: ObjectId("6203ec0e1e95a9885e1e7655"),
  team: 'Spurs',
  points: 35,
  rebounds: 12 }
{ _id: ObjectId("6203ec0e1e95a9885e1e7657"),
  team: 'Warriors',
  points: 25,
  rebounds: 5 }

Обратите внимание, что каждый документ в коллекции Teams возвращается, если поле команды не равно «Mavs».

Примечание . Оператор $ne чувствителен к регистру.

Пример 2: Запрос «Не в»

Следующий код показывает, как найти все документы в коллекции команд , где поле команды не равно «Мавс», «Кавс» или «Шпоры»:

 db.teams.find({' team ': { $nin : [" Mavs ", " Cavs ", " Spurs "]}})

Этот запрос возвращает следующие документы:

 { _id: ObjectId("6203ec0e1e95a9885e1e7656"),
  team: 'Rockets',
  points: 20,
  rebounds: 7 }
{ _id: ObjectId("6203ec0e1e95a9885e1e7657"),
  team: 'Warriors',
  points: 25,
  rebounds: 5 }

Обратите внимание, что каждый документ в коллекции Teams возвращается, если поле команды не равно «Mavs», «Cavs» или «Spurs».

Примечание №1 . Полную документацию по функции $ne можно найти здесь .

Примечание № 2. Полную документацию по функции $nin можно найти здесь .

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные операции в MongoDB:

MongoDB: как проверить, содержит ли поле строку
MongoDB: как искать «не ноль» в определенном поле
MongoDB: как заменить строки

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *