MongoDB-তে অ্যারে ভিতরে ডুপ্লিকেট বাদে নতুন এলিমেন্ট যোগ করতে $nin (Not In) দিয়ে চেক করে $push দিয়ে অ্যাপেন্ড করা হয়। এটি "আপসার্ট-লাইক" আপডেট নিশ্চিত করে।
উদাহরণ: সার্চ ইনফরমেশন অ্যারে
> db.demo573.insertOne({
'_id': 101,
'SearchInformation': [
{ 'Site': 'Facebook.com', 'NumberOfHits': 100 },
{ 'Site': 'Twitter.com', 'NumberOfHits': 300 }
]
});
"Google.com" না থাকলে যোগ করা
> db.demo573.update(
{ _id: 101, "SearchInformation.Site": { $nin: ["Google.com"] } },
{ $push: { "SearchInformation": { 'Site': 'Google.com', 'NumberOfHits': 10000 } } }
);
রেজাল্ট: WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
ফলাফল
> db.demo573.find().pretty();
আউটপুট: অ্যারেতে তিনটি সাইট (Facebook, Twitter, Google) দেখাবে।
কীভাবে কাজ করে:
$nin: ["Google.com"]- যদি অ্যারেতে "Google.com" না থাকে, তবে ডকুমেন্ট ম্যাচ করবে$push- ম্যাচ হলে নতুন অবজেক্ট অ্যারের শেষে যোগ করবে- যদি "Google.com" আগে থেকে থাকে, তবে
nMatched: 0হবে, কিছুই আপডেট হবে না
এটি অ্যারের ইউনিকনেস মেইনটেইন করার সহজ পদ্ধতি।