Mongodb: як використовувати запит «not in».


Ви можете використовувати такий синтаксис, щоб знайти всі документи, у яких значення певного поля немає в певному списку значень:

 db.collection.find({field1: { $nin : [" value1 ", " value2 ", " value3 "]}}) 

Цей конкретний запит шукає всі документи, у яких значення поля 1 не дорівнює значенню1, значенню2 або значенню3.

Наступні приклади показують, як використовувати цей синтаксис на практиці.

Приклад 1: Запит на «NOT IN» із значенням

Припустімо, що у нас є група збору з такими документами:

 db.teams.insertOne({team: " Mavs ", position: " Guard ", points: 31 })
db.teams.insertOne({team: " Spurs ", position: " Guard ", points: 22 })
db.teams.insertOne({team: " Rockets ", position: " Center ", points: 19 })
db.teams.insertOne({team: " Warriors ", position: " Forward ", points: 26 })
db.teams.insertOne({team: " Cavs ", position: " Guard ", points: 33 })

Ми можемо використати наступний код, щоб знайти всі документи, де поле «команда» не дорівнює значенню «Ракети»:

 db.teams.find({team: { $nin : [" Rockets "]}}) 

Цей запит повертає такі документи:

 { _id: ObjectId("619527e467d6742f66749b72"),
  team: 'Cavs',
  position: 'Guard',
  points: 33 }

{ _id: ObjectId("619527e467d6742f66749b6e"),
  team: 'Mavs',
  position: 'Guard',
  points: 31 }

{ _id: ObjectId("619527e467d6742f66749b6f"),
  team: 'Mavs',
  position: 'Guard',
  points: 22 }

Зауважте, що повертаються лише документи, у яких поле «команда» не дорівнює «Ракети».

Приклад 2: Запит «NON IN» зі списком значень

Припустімо, що у нас є група збору з такими документами:

 db.teams.insertOne({team: " Mavs ", position: " Guard ", points: 31 })
db.teams.insertOne({team: " Spurs ", position: " Guard ", points: 22 })
db.teams.insertOne({team: " Rockets ", position: " Center ", points: 19 })
db.teams.insertOne({team: " Warriors ", position: " Forward ", points: 26 })
db.teams.insertOne({team: " Cavs ", position: " Guard ", points: 33 })

Ми можемо використати наступний код, щоб знайти всі документи, де поле «team» не дорівнює значенню «Rockets» або «Cavs»:

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

Цей запит повертає такі документи:

 { _id: ObjectId("619527e467d6742f66749b6e"),
  team: 'Mavs',
  position: 'Guard',
  points: 31 }

{ _id: ObjectId("619527e467d6742f66749b6f"),
  team: 'Mavs',
  position: 'Guard',
  points: 22 }

Зауважте, що повертаються лише документи, у яких поле «команда» не дорівнює «Ракетам» чи «Кавсам».

Примітка : ви можете знайти повну документацію для функції $nin тут .

Додаткові ресурси

У наступних посібниках пояснюється, як виконувати інші типові операції в MongoDB:

MongoDB: як робити запити за допомогою регулярного виразу «Подобається».
MongoDB: як перевірити, чи поле містить рядок
MongoDB: Як додати нове поле до колекції
MongoDB: як видалити поле з кожного документа

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *