MongoDB-এ কোনো ফিল্ড ডকুমেন্টে না থাকলে মাত্র সেট করতে $exists: false কোয়েরি এবং $set আপডেট ব্যবহার করা হয়, multi: true দিয়ে সব মэтচিং ডকুমেন্ট আপডেট হয়।
নমুনা ডেটা তৈরি (StudentAge কিছুতে আছে, কিছুতে নেই)
> db.missingDocumentDemo.insertOne({"StudentFirstName":"Adam","StudentLastName":"Smith"});
{ "acknowledged": true, "insertedId": ObjectId("5cd3fb1eedc6604c74817ce6") }
> db.missingDocumentDemo.insertOne({"StudentFirstName":"Carol","StudentLastName":"Taylor"});
{ "acknowledged": true, "insertedId": ObjectId("5cd3fb29edc6604c74817ce7") }
> db.missingDocumentDemo.insertOne({"StudentFirstName":"David","StudentLastName":"Miller","StudentAge":21});
{ "acknowledged": true, "insertedId": ObjectId("5cd3fb40edc6604c74817ce8") }
সব ডকুমেন্ট দেখুন
> db.missingDocumentDemo.find().pretty();আউটপুট:
{
"_id": ObjectId("5cd3fb1eedc6604c74817ce6"),
"StudentFirstName": "Adam",
"StudentLastName": "Smith"
}
{
"_id": ObjectId("5cd3fb29edc6604c74817ce7"),
"StudentFirstName": "Carol",
"StudentLastName": "Taylor"
}
{
"_id": ObjectId("5cd3fb40edc6604c74817ce8"),
"StudentFirstName": "David",
"StudentLastName": "Miller",
"StudentAge": 21
}
StudentAge ফিল্ড নেই এমন ডকুমেন্টগুলোতে StudentAge: 23 সেট করা (multi: true)
> db.missingDocumentDemo.update(
{ "StudentAge": { "$exists": false } },
{ "$set": { "StudentAge": 23 } },
{ "multi": true }
);
WriteResult({ "nMatched": 2, "nUpserted": 0, "nModified": 2 })
আপডেট হওয়া ডকুমেন্ট যাচাই করুন
> db.missingDocumentDemo.find().pretty();আউটপুট (Adam এবং Carol-এ StudentAge 23 যুক্ত হয়েছে, David-এর 21 অপরিবর্তিত):
{
"_id": ObjectId("5cd3fb1eedc6604c74817ce6"),
"StudentFirstName": "Adam",
"StudentLastName": "Smith",
"StudentAge": 23
}
{
"_id": ObjectId("5cd3fb29edc6604c74817ce7"),
"StudentFirstName": "Carol",
"StudentLastName": "Taylor",
"StudentAge": 23
}
{
"_id": ObjectId("5cd3fb40edc6604c74817ce8"),
"StudentFirstName": "David",
"StudentLastName": "Miller",
"StudentAge": 21
}
নোট: আধুনিক MongoDB-এ updateMany({StudentAge: {$exists: false}}, {$set: {StudentAge: 23}}) ব্যবহার করুন। এটি উপস্থিত ফিল্ড ওভাররাইট করে না।