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: як видалити поле з кожного документа