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-уудыг хэрхэн өөрчлөх талаар үзнэ.