MongoDB / Query operator ($eq, $gt, $in)
Query operator ($eq, $gt, $in)
MongoDB-д өгөгдлийг шүүхдээ query operator-уудыг ашигладаг. Эдгээр нь $ тэмдэгтээр эхэлдэг тусгай түлхүүр үгнүүд бөгөөд нарийн нөхцөл тавих боломж олгодог.
Харьцуулах операторууд (Comparison)
$eq — тэнцүү
$eq нь өгөгдсөн утгатай тэнцүү document-уудыг олно.
javascript
// age нь яг 25-тай тэнцүү
db.users.find({ age: { $eq: 25 } });
// Хялбаршуулсан хэлбэр — адилхан үр дүн
db.users.find({ age: 25 });
$ne — тэнцүү биш
javascript
// status нь "inactive" биш бүх document
db.users.find({ status: { $ne: "inactive" } });
$gt, $gte — их, их буюу тэнцүү
javascript
// age нь 18-аас их
db.users.find({ age: { $gt: 18 } });
// age нь 18 буюу түүнээс их
db.users.find({ age: { $gte: 18 } });
$lt, $lte — бага, бага буюу тэнцүү
javascript
// price нь 100-аас бага
db.products.find({ price: { $lt: 100 } });
// price нь 100 буюу түүнээс бага
db.products.find({ price: { $lte: 100 } });
$in — жагсаалтад байгаа
$in нь өгөгдсөн массив дотор байгаа утгатай document-уудыг олно.
javascript
// status нь "active" эсвэл "pending" байгаа document
db.users.find({ status: { $in: ["active", "pending"] } });
// city нь Улаанбаатар эсвэл Дархан байгаа хэрэглэгчид
db.users.find({ city: { $in: ["Улаанбаатар", "Дархан"] } });
$nin — жагсаалтад байхгүй
javascript
// role нь "admin" ба "moderator" биш бүх document
db.users.find({ role: { $nin: ["admin", "moderator"] } });
Логик операторууд (Logical)
$and — бүх нөхцөл биелэх ёстой
javascript
// age нь 18-аас дээш БА status нь "active"
db.users.find({
$and: [{ age: { $gte: 18 } }, { status: "active" }],
});
// Хялбаршуулсан хэлбэр — нэг талбарт олон нөхцөл биш бол ийнхүү бичиж болно
db.users.find({
age: { $gte: 18 },
status: "active",
});
$or — аль нэг нөхцөл биелэх ёстой
javascript
// score нь 90-ээс дээш ЭСВЭЛ grade нь "A"
db.students.find({
$or: [{ score: { $gt: 90 } }, { grade: "A" }],
});
$not — нөхцөлийг үгүйсгэх
javascript
// age нь 18-аас дээш БИШ (өөрөөр хэлбэл 18-аас бага буюу тэнцүү)
db.users.find({ age: { $not: { $gt: 18 } } });
$nor — аль нь ч биелэхгүй
javascript
// status нь "inactive" ч биш, deleted нь true ч биш
db.users.find({
$nor: [{ status: "inactive" }, { deleted: true }],
});
Элемент операторууд (Element)
$exists — талбар байгаа эсэх
javascript
// email талбар байгаа бүх document
db.users.find({ email: { $exists: true } });
// phone талбар байхгүй document
db.users.find({ phone: { $exists: false } });
$type — талбарын төрлөөр шүүх
javascript
// age талбар нь тоон утга (type 16 = int32, 18 = int64, 1 = double)
db.users.find({ age: { $type: "number" } });
// name нь string төрлийн
db.users.find({ name: { $type: "string" } });
Жишээ: Нарийн шүүлт
javascript
// Мэдээллийн санд байгаа бараа:
// { name: "Ухаалаг утас", price: 850000, category: "electronics", stock: 5 }
// { name: "Чихэвч", price: 45000, category: "electronics", stock: 0 }
// { name: "Ном", price: 15000, category: "books", stock: 20 }
// 50000-аас доош үнэтэй, нөөцөд байгаа бараа
db.products.find({
price: { $lt: 50000 },
stock: { $gt: 0 },
});
// Үр дүн: Ном
// Electronics эсвэл 100000-аас доош үнэтэй
db.products.find({
$or: [{ category: "electronics" }, { price: { $lt: 100000 } }],
});
// Үр дүн: Ухаалаг утас, Чихэвч, Ном
Дараагийн хичээлд:
updateOne ба updateMany ашиглан document-уудыг хэрхэн өөрчлөх талаар үзнэ.