Mongodb: як зробити запит «not null»? в конкретній області


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

 db.collection.find({" field_name ":{ $ne : null }}) 

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

Приклад 1: Запит на «not null» у певному полі

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

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

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

 db.teams.find({" position ":{ $ne : null }})

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

 { _id: ObjectId("618bf18f35d8a762d3c28717"),
  team: 'Spurs',
  position: 'Guard',
  points: 22 }

{ _id: ObjectId("618bf18f35d8a762d3c28719"),
  team: 'Warriors',
  position: 'Forward',
  points: 26 }

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

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

Приклад 2: Запит на «not null» (коли всі документи не містять поля)

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

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

Зауважте, що другий документ у колекції навіть не має поля «позиція».

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

 db.teams.find({" position ":{ $ne : null }})

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

 { _id: ObjectId("618bf18f35d8a762d3c28719"),
  team: 'Warriors',
  position: 'Forward',
  points: 26 }

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

Оскільки другий документ навіть не має поля «позиція», він не повертається.

Також зауважте, що інші два документи, які мають нульове значення в полі «позиція», також не повертаються.

Підсумок : використовуючи синтаксис $ne:null , ми повертаємо лише документи, для яких існує певне поле , яке не є нульовим.

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

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

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

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

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