কম্পিউটার

MongoDB অন্য আপডেটে একটি মান অনন্য হলে শুধুমাত্র সন্নিবেশ করুন


আপনি আপসার্ট ব্যবহার করতে পারেন অর্থাৎ যখনই আপনি একটি মান সন্নিবেশ করেন এবং এটি ইতিমধ্যেই বিদ্যমান থাকে তখন আপডেটটি সঞ্চালিত হবে। যদি মানটি ইতিমধ্যেই বিদ্যমান না থাকে তবে এটি সন্নিবেশ করা হবে৷

আসুন প্রথমে ডকুমেন্ট সহ একটি সংগ্রহ তৈরি করি

> db.onlyInsertIfValueIsUniqueDemo.insertOne({"StudentName":"Larry","StudentAge":22});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c9a633815e86fd1496b38a4")
}
> db.onlyInsertIfValueIsUniqueDemo.insertOne({"StudentName":"Mike","StudentAge":21});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c9a634a15e86fd1496b38a5")
}
> db.onlyInsertIfValueIsUniqueDemo.insertOne({"StudentName":"Sam","StudentAge":24});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c9a635015e86fd1496b38a6")
}

Find() পদ্ধতি

এর সাহায্যে একটি সংগ্রহ থেকে সমস্ত নথি প্রদর্শন করার জন্য নিম্নলিখিত প্রশ্ন রয়েছে
> db.onlyInsertIfValueIsUniqueDemo.find().pretty();

এটি নিম্নলিখিত আউটপুট তৈরি করবে

{
   "_id" : ObjectId("5c9a633815e86fd1496b38a4"),
      "StudentName" : "Larry",
"StudentAge" : 22
}
{
   "_id" : ObjectId("5c9a634a15e86fd1496b38a5"),
   "StudentName" : "Mike",
   "StudentAge" : 21
}
{
   "_id" : ObjectId("5c9a635015e86fd1496b38a6"),
   "StudentName" : "Sam",
   "StudentAge" : 24
}

কেস 1 :যখন একটি মান ইতিমধ্যেই বিদ্যমান থাকে তখন নিম্নলিখিত প্রশ্নটি করা হয়৷ যেহেতু আপনি যে মানটি সন্নিবেশ করছেন তা ইতিমধ্যেই বিদ্যমান, এটি আপডেট করা হয়

> db.onlyInsertIfValueIsUniqueDemo.update({StudentName:"Mike"},{$set:{"StudentAge":27}},{ upsert: true});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

সব কাগজপত্র আরেকবার দেখুন। নিম্নোক্ত প্রশ্নটি

> db.onlyInsertIfValueIsUniqueDemo.find().pretty();

এটি নিম্নলিখিত আউটপুট তৈরি করবে

{
   "_id" : ObjectId("5c9a633815e86fd1496b38a4"),
   "StudentName" : "Larry",
   "StudentAge" : 22
}
{
   "_id" : ObjectId("5c9a634a15e86fd1496b38a5"),
   "StudentName" : "Mike",
   "StudentAge" : 27
}
{
   "_id" : ObjectId("5c9a635015e86fd1496b38a6"),
   "StudentName" : "Sam",
   "StudentAge" : 24
}

কেস 2 :যখন একটি মান অনন্য হয় তখন নিম্নলিখিত প্রশ্নটি করা হয়৷ যেহেতু আপনি যে মানটি সন্নিবেশ করছেন তা ইতিমধ্যেই বিদ্যমান নেই, তাই এটি সন্নিবেশিত হয়

>db.onlyInsertIfValueIsUniqueDemo.update({StudentName:"David"},{$set:{"StudentAge":25}},{ upsert: true});
WriteResult({
   "nMatched" : 0,
   "nUpserted" : 1,
   "nModified" : 0,
   "_id" : ObjectId("5c9a654ce628c11759caea54")
})

সব নথি আবার একবার দেখুন. নিম্নোক্ত প্রশ্নটি

> db.onlyInsertIfValueIsUniqueDemo.find().pretty();

এটি নিম্নলিখিত আউটপুট তৈরি করবে

{
   "_id" : ObjectId("5c9a633815e86fd1496b38a4"),
   "StudentName" : "Larry",
   "StudentAge" : 22
}
{
   "_id" : ObjectId("5c9a634a15e86fd1496b38a5"),
   "StudentName" : "Mike",
   "StudentAge" : 27
}
{
   "_id" : ObjectId("5c9a635015e86fd1496b38a6"),
   "StudentName" : "Sam",
   "StudentAge" : 24
}
{
   "_id" : ObjectId("5c9a654ce628c11759caea54"),
   "StudentName" : "David",
   "StudentAge" : 25
}

  1. MongoDB-তে প্রতিটি কর্মচারীর 10 শতাংশের সাথে বেতন ক্ষেত্রের মান আপডেট করুন

  2. শুধুমাত্র একটি নির্দিষ্ট ক্ষেত্রের মান আপডেট করতে MongoDB ক্যোয়ারী কিভাবে চালাবেন?

  3. MongoDB নথিতে শুধুমাত্র একটি একক মান বৃদ্ধি করবেন?

  4. MySQL এ শুধুমাত্র একটি একক কলাম মান আপডেট করুন