हां, आप $addToSet और $pull ऑपरेटर के साथ एक ही समय में पुल और ऐड का उपयोग कर सकते हैं। आइए पहले दस्तावेजों के साथ एक संग्रह बनाएं
> db.pullAndAddToSetDemo.insertOne({StudentScores : [78, 89, 90]}
... );
{
"acknowledged" : true,
"insertedId" : ObjectId("5c9a797e15e86fd1496b38af")
} खोज () विधि की मदद से संग्रह से सभी दस्तावेजों को प्रदर्शित करने के लिए क्वेरी निम्नलिखित है
> db.pullAndAddToSetDemo.find().pretty();
यह निम्नलिखित आउटपुट उत्पन्न करेगा
{
"_id" : ObjectId("5c9a797e15e86fd1496b38af"),
"StudentScores" : [
78,
89,
90
]
} MongoDB में एक ही समय में खींचने और जोड़ने के लिए क्वेरी निम्नलिखित है
> var addAndPull = db.pullAndAddToSetDemo.initializeOrderedBulkOp();
> addAndPull.find({ "StudentScores": 89 }).updateOne({ "$addToSet": { "StudentScores": 99 } });
> addAndPull.find({ "StudentScores": 90 }).updateOne({ "$pull": { "StudentScores": 90 } });
> addAndPull.execute(); यह निम्नलिखित आउटपुट उत्पन्न करेगा
BulkWriteResult({
"writeErrors" : [ ],
"writeConcernErrors" : [ ],
"nInserted" : 0,
"nUpserted" : 0,
"nMatched" : 2,
"nModified" : 2,
"nRemoved" : 0,
"upserted" : [ ]
}) आइए हम संग्रह से दस्तावेज़ को एक बार फिर से देखें। निम्नलिखित प्रश्न है
> db.pullAndAddToSetDemo.find().pretty();
यह निम्नलिखित आउटपुट उत्पन्न करेगा
{
"_id" : ObjectId("5c9a797e15e86fd1496b38af"),
"StudentScores" : [
78,
89,
99
]
}