Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MongoDB

MongoDB में एक ही समय में $pull और $addToSet का उपयोग करना संभव है?


बल्क ऑपरेशन के साथ संयुक्त अपडेट

एक ही ऑपरेशन में एक सरणी से तत्व हटाने ($pull) और दूसरे तत्व को जोड़ने ($addToSet - डुप्लिकेट रोकता है) के लिए, initializeOrderedBulkOp() (या आधुनिक bulkWrite()) का उपयोग करें।

उदाहरण: प्रारंभिक डेटा

> db.pullAndAddToSetDemo.insertOne({"StudentScores": [78, 89, 90]}); 
{ "acknowledged" : true, "insertedId" : ObjectId("5c9a797e15e86fd1496b38af") }

बल्क ऑपरेशन निष्पादित करना

> 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();

आउटपुट:


व्याख्या:

  • पहला ऑपरेशन: जहां सरणी में 89 है, वहां 99 जोड़ता है ($addToSet डुप्लिकेट रोकता है)।
  • दूसरा ऑपरेशन: जहां सरणी में 90 है, वहां से 90 हटाता है ($pull)।
  • दोनों एक ही बल्क निष्पादन में परमाणु रूप से लागू होते हैं।

आधुनिक विकल्प (MongoDB 3.2+): db.collection.bulkWrite([...]) का उपयोग करें जो अधिक लचीला और मानक है।

  1. - MySQL में ADDTIME() से DATETIME कॉलम में समय जोड़ें

    MySQL का ADDTIME(datetime, time) फ़ंक्शन एक DATETIME/TIME मान में समय अंतराल जोड़ता है। टेबल बनाएं mysql> CREATE TABLE DemoTable1848 (ShippingDate DATETIME); डेटा डालें mysql> INSERT INTO DemoTable1848 VALUES(2019-10-11 12:30:45); mysql> INSERT INTO DemoTable1848 VALUES(2019-01-12 10:00:0

  1. - C++ में दिए गए तत्वों के सेट से संभावित आयत और वर्गों की संख्या

    इस समस्या में, हमें N पूर्णांकों का एक ऐरे दिया गया है जो n छड़ियों की लंबाई को दर्शाता है। हमारा कार्य दिए गए लंबाई की छड़ियों से बनाए जा सकने वाले आयतों और वर्गों की संख्या प्रिंट करना है। समस्या को समझने के लिए एक उदाहरण लेते हैं इनपुट - ऐरे = {5, 5, 7, 7, 1, 4} आउटपुट - 1 व्याख्या - भुजाओं 5 5

  1. Redis SADD में महारत हासिल करें: सेट बनाएं और तत्व कुशलतापूर्वक जोड़ें Redis SADD में महारत हासिल करें: सेट बनाएं और तत्व कुशलतापूर्वक जोड़ें

    इस ट्यूटोरियल में, हम सीखेंगे कि redis-cli में कमांड SADD का उपयोग करके किसी कुंजी पर संग्रहीत सेट मान में तत्वों को कैसे बनाएं और जोड़ें। यदि डेटास्टोर में कोई कुंजी मौजूद है, तो सभी निर्दिष्ट तत्वों को सेट में जोड़ा जाएगा (उन तत्वों को नजरअंदाज करते हुए जो पहले से मौजूद हैं) अन्यथा उन्हें सेट में