Вы можете использовать оператор $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: как заменить строки