অভিধানের একটি তালিকায় মানের সমষ্টি করতে, aggregate() এর সাথে $sum ব্যবহার করুন। আসুন নথি-
সহ একটি সংগ্রহ তৈরি করি> db.demo117.insertOne( ... { ... ID:101, ... Details:[ ... { ... Name:'Chris', ... Value1:20, ... Value2:30, ... Value3:10 ... }, ... { ... Name:'David', ... Value1:10, ... Value2:50, ... Value3:30 ... } ... ] ... } ... ); { "acknowledged" : true, "insertedId" : ObjectId("5e2f02ced8f64a552dae6361") } > db.demo117.insertOne( ... { ... ID:102, ... Details:[ ... { ... Name:'Chris', ... Value1:20, ... Value2:10, ... Value3:20 ... }, ... { ... Name:'David', ... Value1:30, ... Value2:40, ... Value3:10 ... } ... ] ... } ... ); { "acknowledged" : true, "insertedId" : ObjectId("5e2f02ced8f64a552dae6362") }
Find() পদ্ধতি -
এর সাহায্যে একটি সংগ্রহ থেকে সমস্ত নথি প্রদর্শন করুন> db.demo117.find();
এটি নিম্নলিখিত আউটপুট −
তৈরি করবে{ "_id" : ObjectId("5e2f02ced8f64a552dae6361"), "ID" : 101, "Details" : [ { "Name" : "Chris", "Value1" : 20, "Value2" : 30, "Value3" : 10 }, { "Name" : "David", "Value1" : 10, "Value2" : 50, "Value3" : 30 } ] } { "_id" : ObjectId("5e2f02ced8f64a552dae6362"), "ID" : 102, "Details" : [ { "Name" : "Chris", "Value1" : 20, "Value2" : 10, "Value3" : 20 }, { "Name" : "David", "Value1" : 30, "Value2" : 40, "Value3" : 10 } ] }
সমস্ত নথির জন্য অভিধানের তালিকায় মানগুলির সমষ্টির সমষ্টির জন্য নিম্নলিখিত ক্যোয়ারী রয়েছে -
> db.demo117.aggregate([{ ... $unwind: "$Details" ... }, { ... $group: { ... _id: "$Details.Name", ... "Value1": { $sum: "$Details.Value1" }, ... "Value2": { $sum: "$Details.Value2" }, ... "Value3": { $sum: "$Details.Value3" } ... } ... }])
এটি নিম্নলিখিত আউটপুট −
তৈরি করবে{ "_id" : "David", "Value1" : 40, "Value2" : 90, "Value3" : 40 } { "_id" : "Chris", "Value1" : 40, "Value2" : 40, "Value3" : 30 }