Mongodb: як використовувати оператор and ($and) у запитах
Ви можете використовувати оператор $and у MongoDB для пошуку документів, які відповідають багатьом критеріям.
Цей оператор використовує наступний базовий синтаксис:
db.myCollection.find({ " $and ": [ {" field1 ": " hello "}, {" field2 ": { $gte : 10 }} ] })
У цьому конкретному прикладі виконується пошук усіх документів у колекції під назвою myCollection , де поле1 дорівнює «hello» , а поле2 має значення більше або дорівнює 10.
У наведених нижче прикладах показано, як використовувати цей синтаксис на практиці з групою зборів із такими документами:
db.teams.insertOne({team: " Mavs ", points: 30, rebounds: 8}) db.teams.insertOne({team: " Mavs ", points: 30, rebounds: 12}) db.teams.insertOne({team: " Spurs ", points: 20, rebounds: 7}) db.teams.insertOne({team: " Spurs ", points: 25, rebounds: 5}) db.teams.insertOne({team: " Spurs ", points: 23, rebounds: 9})
Приклад 1. Використовуйте оператор І з двома полями
Наступний код показує, як знайти всі документи в колекції teams , у яких поле «team» дорівнює «Spurs», а значення поля «points» більше або дорівнює 22:
db.teams.find({ " $and ": [ {" team ": " Spurs "}, {" points ": { $gte : 22 }} ] })
Цей запит повертає такі документи:
{ _id: ObjectId("6201824afd435937399d6b6c"), team: 'Spurs', points: 25, rebounds: 5 } { _id: ObjectId("6201824afd435937399d6b6d"), team: 'Spurs', points: 23, rebounds: 9 }
Зауважте, що кожен документ у вихідних даних містить «Шпори» в полі «Команда» та значення, що перевищує або дорівнює 22 у полі «очки».
Приклад 2. Використовуйте оператор І з більш ніж двома полями
Наступний код показує, як знайти всі документи в колекції teams , де поле «team» не дорівнює «Mavs», а значення в полі «points» більше або дорівнює 22, а значення в полі «rebounds» » поле менше 7:
db.teams.find({ " $and ": [ {" team ": { $ne : " Mavs "}}, {" points ": { $gte : 22 }}, {" rebounds ": { $lt : 7 }} ] })
Цей запит повертає такий документ:
{ _id: ObjectId("6201824afd435937399d6b6c"), team: 'Spurs', points: 25, rebounds: 5 }
Зверніть увагу, що це єдиний документ у колекції, який відповідає всім трьом критеріям:
- Поле «Команда» не дорівнює « Мавс »
- Поле «балів» має значення більше або дорівнює 22
- Поле «підбирання» має значення менше 7
Примітка . Ви можете знайти повну документацію для функції $and тут .
Додаткові ресурси
У наступних посібниках пояснюється, як виконувати інші типові операції в MongoDB:
MongoDB: як перевірити, чи поле містить рядок
MongoDB: як використовувати запит «NO IN».
MongoDB: як шукати «not null» у певному полі