हां, आप $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 ] }