चूंकि यह मेरे पिछले उत्तरों में से एक का अनुवर्ती है, इसलिए मैं आपके कोड को ठीक करने का प्रयास करूंगा। लब्बोलुआब यह है कि आपको दो प्रश्नों की आवश्यकता है क्योंकि आप अपने डेटाबेस को अपग्रेड नहीं कर सकते हैं इसलिए कोड नीचे जैसा दिखना चाहिए:
var queryResult = db.UserDetails.aggregate(
{
$lookup: {
from: "UserProducts",
localField: "UID",
foreignField: "UID",
as: "userProduct"
}
},
{ $unwind: "$userProduct" },
{
"$project": { "_id" : 0, "userProduct.UPID" : 1 }
},
{
$group: {
_id: null,
userProductUPIDs: { $addToSet: "$userProduct.UPID" }
}
});
let userProductUPIDs = queryResult.toArray()[0].userProductUPIDs;
db.Groups.aggregate([
{
$unwind: "$members.regularStudent"
},
{
$group: {
_id: null,
UPIDs: { $addToSet: "$members.regularStudent" }
}
},
{
$project: {
members: {
$setDifference: [ userProductUPIDs , "$UPIDs" ]
},
_id : 0
}
}
]) // should return 100