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


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

Цей оператор використовує наступний базовий синтаксис:

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

У цьому конкретному прикладі виконується пошук усіх документів у колекції під назвою myCollection , де поле team не дорівнює “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: запит «Not in».

Наступний код показує, як знайти всі документи в колекції 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 }

Зауважте, що кожен документ у колекції команд повертається, якщо поле команди не дорівнює «Mavs», «Cavs» або «Spurs».

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

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

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

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

MongoDB: як перевірити, чи поле містить рядок
MongoDB: як шукати «not null» у певному полі
MongoDB: Як замінити рядки

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

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