একটা exact value match করা শুধু একটা নির্দিষ্ট পর্যন্ত নিয়ে যায়। Query operator — সবসময় একটা leading $ দিয়ে লেখা — আপনাকে range, set, আর condition-এর combination দিয়ে filter করতে দেয়।
| Operator | অর্থ |
|---|---|
| $gt | চেয়ে বড় |
| $gte | চেয়ে বড় বা সমান |
| $lt | চেয়ে ছোট |
| $lte | চেয়ে ছোট বা সমান |
| $ne | সমান না |
| $in | একটা প্রদত্ত array-এর যেকোনো value match করে |
| $nin | একটা প্রদত্ত array-এর কোনো value match করে না |
// ২৫-এর বেশি বয়সী user
db.users.find({ age: { $gt: 25 } })
// যে user-এর role এই তিনটার একটা
db.users.find({ role: { $in: ["admin", "editor", "moderator"] } })$and আর $or একাধিক condition একসাথে করে। Practice-এ, একই object-এ দুটো field তালিকাভুক্ত করা ইতিমধ্যে একটা implicit $and — explicit operator প্রধানত দরকার হয় যখন একই field-এ একাধিক condition combine করা হয়।
// Implicit AND — age > 20 আর role = "editor"
db.users.find({ age: { $gt: 20 }, role: "editor" })
// Explicit OR — role admin অথবা age 60-এর বেশি
db.users.find({
$or: [
{ role: "admin" },
{ age: { $gt: 60 } }
]
})$exists চেক করে একটা field আদৌ আছে কিনা — MongoDB-তে সত্যিই useful, কারণ প্রতিটা document-এর প্রতিটা field থাকার guarantee নেই:
db.users.find({ phoneNumber: { $exists: true } })Operator অবাধে combine হয়
এই operator-গুলো একটা query-র ভিতরে অবাধে combine হয় — আপনি একবারে শুধু একটা ব্যবহার করতে সীমাবদ্ধ না। "২০–৩৫ বছর বয়সী active editor" filter করা একটা real query একটা single object-এ একসাথে $gte, $lte, আর একটা implicit $and ব্যবহার করবে।