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