MongoDBIntermediate
Query Builder ও Operators
Mongoose chainable query, comparison operators, sort/limit/select ও lean — বাংলায়।
11টি অংশবাংলা ভাষায়
Chainable query
Chained queryjs
js
const popularPosts = await Post.find({ published: true })
.sort({ views: -1 }) // সবচেয়ে বেশি দেখা আগে
.limit(10) // শুধু ১০টি
.skip(20) // পেজিনেশন: আগের ২০ বাদ
.select("title views") // শুধু দরকারি field
.lean(); // plain object (fast)Comparison operators
Operator ব্যবহারjs
js
// দাম ১০০ থেকে ৫০০ এর মধ্যে
await Product.find({
price: { $gte: 100, $lte: 500 },
});
// status এই কয়েকটির যেকোনো একটি
await Order.find({ status: { $in: ["pending", "shipped"] } });
// title-এ 'mongoose' আছে এমন — case insensitive
await Post.find({ title: { $regex: "mongoose", $options: "i" } });
// author reference-এর চেয়ে নির্দিষ্ট
await Post.find({ author: { $ne: someUserId } });| Operator | অর্থ |
|---|---|
$eq | সমান |
$ne | সমান না |
$gt / $gte | বড় / বড় বা সমান |
$lt / $lte | ছোট / ছোট বা সমান |
$in / $nin | লিস্টের ভেতরে / বাইরে |
$regex | Pattern match |
$exists | field আছে কিনা |
Logical operators ($and / $or)
$or সহjs
js
const result = await User.find({
$or: [
{ email: userEmail },
{ username: username },
],
});where() সিনট্যাক্স
where-basedjs
js
const cheap = await Product.find()
.where("price")
.gte(50)
.lt(300)
.where("inStock")
.equals(true)
.sort("-price");lean() কী ও কখন
.lean() document-গুলো plain JavaScript object বানায় — lighter ও অনেক দ্রুত। কিন্তু document method ছাড়া কাজ করবে না (যেমন user.save())। শুধু read/render-এর জন্য lean() ব্যবহার করুন।
শেষ প্যারায় নিজে practice করুন — কোড কপি করে নিজের এডিটরে চালিয়ে দেখুন।