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 возвращается , если поле team не равно «Mavs».

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

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

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

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 возвращается , если поле team не равно «Mavs», «Cavs» или «Spurs».

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

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

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

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

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

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.