MongoDBIntermediate
Update Operators ($set, $inc, $push…)
MongoDB update operator-গুলোর ব্যবহার: $set, $inc, $push, $pull, $addToSet, upsert — বাংলায়।
9টি অংশবাংলা ভাষায়
Operator-গুলো
| Operator | কাজ |
|---|---|
$set | field-এর value বসান |
$unset | field মুছে ফেলুন |
$inc | সংখ্যা বাড়ান/কমান |
$mul | গুণ করুন |
$push | array-তে value যোগ করুন |
$pull | array থেকে নির্দিষ্ট value সরান |
$addToSet | array-তে যুক্ত করুন (ডুপ্লিকেট ছাড়া) |
$min / $max | ছোট/বড় value রাখুন |
Numeric operators
$set, $inc, $unsetjs
js
// title ঠিক করুন, views ১ বাড়ান, pending field-টা সরান
await Post.updateOne(
{ _id: postId },
{
$set: { title: "আপডেটেড টাইটেল" },
$inc: { views: 1 },
$unset: { pending: "" },
}
);
// পূর্বের value দেখে update: $inc atomic — race-safe
await Account.updateOne(
{ _id: accId },
{ $inc: { balance: -100 } }
);Array operators
$push, $pull, $addToSetjs
js
// comment যোগ
await Post.updateOne(
{ _id: postId },
{ $push: { comments: commentId } }
);
// নির্দিষ্ট comment সরান
await Post.updateOne(
{ _id: postId },
{ $pull: { comments: commentId } }
);
// duplicate ছাড়া tag যোগ
await Post.updateOne(
{ _id: postId },
{ $addToSet: { tags: "mongoose" } }
);
// $push-এ position সহ — সামনে বসান
await Post.updateOne(
{ _id: postId },
{ $push: { comments: { $each: [newCommentId], $position: 0 } } }
);upsert
নেই থাকলে insertjs
js
// মতো filter-এর document না থাকলে নতুন document তৈরি হয়
await LoginAttempt.updateOne(
{ userId, date: today },
{ $inc: { count: 1 } },
{ upsert: true }
);update operators + findOneAndUpdate
findOneAndUpdate-এর সাথে operator ছাড়া (যেমন { title: "..." }) সরাসরি value বসালে পুরো document replace হয়ে যেতে পারে। সবসময় $set ইত্যাদি operator ব্যবহার করুন — options.overwrite পুরো প্রতিস্থাপনের জন্য দরকার।
শেষ প্যারায় নিজে practice করুন — কোড কপি করে নিজের এডিটরে চালিয়ে দেখুন।