$redact এবং $cond ব্যবহার করে ডকুমেন্ট কন্টেন্ট শর্তসাপেক্ষে রাখা/বাদ দেওয়া
MongoDB Aggregation-এ $redact স্টেজ ডকুমেন্টের কন্টেন্টকে ডকুমেন্টের নিজস্ব ইনফরমেশন অনুযায়ী ফিল্টার করে। $cond দিয়ে শর্ত দিয়ে $$KEEP (রাখো) বা $$PRUNE (বাদ দাও) ডিসাইড করা হয়।
নমুনা সংগ্রহ তৈরি
> db.demo546.insertOne({"Value1":10,"Value2":20});
{ "acknowledged" : true, "insertedId" : ObjectId("5e8e263f9e5f92834d7f05d7") }
> db.demo546.insertOne({"Value1":40,"Value2":30,Value3:50});
{ "acknowledged" : true, "insertedId" : ObjectId("5e8e26549e5f92834d7f05d8") }
> db.demo546.insertOne({"Value1":100,"Value2":200,Value3:null});
{ "acknowledged" : true, "insertedId" : ObjectId("5e8e26619e5f92834d7f05d9") }
> db.demo546.insertOne({"Value1":400,"Value2":1000,Value3:null});
{ "acknowledged" : true, "insertedId" : ObjectId("5e8e26e09e5f92834d7f05da") }
> db.demo546.insertOne({"Value1":400,"Value2":200,Value3:null});
{ "acknowledged" : true, "insertedId" : ObjectId("5e8e26f59e5f92834d7f05db") }
> db.demo546.insertOne({"Value1":400,"Value2":1000,Value3:60});
{ "acknowledged" : true, "insertedId" : ObjectId("5e8e27159e5f92834d7f05dc") }
সব ডকুমেন্ট দেখানো
> db.demo546.find();
আউটপুট:
$redact দিয়ে শর্ত: Value1 < Value2 AND Value3 exists (not null)
ফলাফল (শুধু শেষ ডকুমেন্ট মেলে শর্ত):
ব্যাখ্যা: $and-এ দুটি শর্ত: ১) Value1 < Value2 ($lt), ২) Value3 null নয় ($ifNull: ["$Value3", false] মানে Value3 থাকলে true, null হলে false)। শুধু শেষ ডকুমেন্ট (Value1=400, Value2=1000, Value3=60) দুটি শর্ত পূরণ করে। $$KEEP ডকুমেন্ট রাখে, $$PRUNE বাদ দেয়।