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

सरणी डालें जहां तत्व मौजूद नहीं है और इसे अपडेट करें (कई शर्तों के साथ)?

<घंटा/>

आप बल्कवाइट() का उपयोग कर सकते हैं। आइए दस्तावेजों के साथ एक संग्रह बनाएं -

> db.demo105.insertOne( { _id:'101', Name:'Chris', Details:[{ Marks1:60, Marks2:70, Marks3:70 }, { Marks1:70, Marks2:70, Marks3:90 }] } );
{ "acknowledged" : true, "insertedId" : "101" }

संग्रह से सभी दस्तावेज़ों को खोजने () विधि की सहायता से प्रदर्शित करें -

> db.demo105.find().pretty();

यह निम्नलिखित आउटपुट उत्पन्न करेगा -

{
   "_id" : "101",
   "Name" : "Chris",
   "Details" : [
      {
         "Marks1" : 60,
         "Marks2" : 70,
         "Marks3" : 70
      },
      {
         "Marks1" : 70,
         "Marks2" : 70,
         "Marks3" : 90
      }
   ]
}

जहां तत्व मौजूद नहीं है वहां सरणी सम्मिलित करने के लिए क्वेरी निम्नलिखित है, अन्यथा इसे कई शर्तों के साथ अपडेट करें -

> db.demo105.bulkWrite([
...    { "updateOne": {
...       "filter": {
...          "_id": "101",
...          "Details": {
...             "$elemMatch": { Marks2: 70, Marks3: 70 }
...             }
...          },
...          "update": {
...             "$set": { "Details.$.Marks3": 96 }
...             }
...          }},
...          { "updateOne": {
...                "filter": {
...                   "_id": "101",
...                   "Details": {
...                      "$not": {
...                         "$elemMatch": { Marks2: 70, Marks3: 70 }
...                      }
...                   }
...                },
...                "update": {
...                   "$push": { "Details": { Marks1: 94, Marks2: 97,Marks3:99} }
...                }
...             }},
...          { "updateOne": {
...             "filter": { "_id": 101 },
...             "update": {
...                "$setOnInsert": {
...                   "Details": [
...                { Marks1: 34, Marks2: 67,Marks3:87 }
...             ]
...          }
...       },
...       "upsert": true
...    }}
... ])
{
   "acknowledged" : true,
   "deletedCount" : 0,
   "insertedCount" : 0,
   "matchedCount" : 2,
   "upsertedCount" : 1,
   "insertedIds" : {
   },
   "upsertedIds" : {
      "2" : 101
   }
}

संग्रह से सभी दस्तावेज़ों को खोजने () विधि की सहायता से प्रदर्शित करें -

> db.demo105.find().pretty();

यह निम्नलिखित आउटपुट उत्पन्न करेगा -

{
   "_id" : "101",
   "Name" : "Chris",
   "Details" : [
      {
         "Marks1" : 60,
         "Marks2" : 70,
         "Marks3" : 96
      },
      {
         "Marks1" : 70,
         "Marks2" : 70,
         "Marks3" : 90
      },
      {
         "Marks1" : 94,
         "Marks2" : 97,
         "Marks3" : 99
      }
   ]
}
{
   "_id" : 101,
   "Details" : [
      {
         "Marks1" : 34,
         "Marks2" : 67,
         "Marks3" : 87
      }
   ]
}

  1. MySQL WHERE क्लॉज में कई मानों के साथ अपडेट करें

    आइए पहले एक टेबल बनाएं - );क्वेरी ओके, 0 पंक्तियाँ प्रभावित (0.81 सेकंड) इंसर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें - डेमोटेबल मानों में डालें ( 103,कैरोल,28,एयूएस);क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.21 सेकंड) चयन कथन का उपयोग करके तालिका से सभी रिकॉर्ड प्रदर्शित करें - डेमोटेबल से

  1. तालिका से चयन करें जहां MySQL के साथ मान मौजूद नहीं है?

    इसके लिए आप NOT IN() - . का प्रयोग कर सकते हैं टेबल बनाएं DemoTable1991(StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY, StudentName varchar(20));क्वेरी ठीक, 0 पंक्तियाँ प्रभावित (0.61 सेकंड) इंसर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें - DemoTable1991(StudentName) मान (माइक) में डालें

  1. निर्दिष्ट सेवा एक स्थापित सेवा के रूप में मौजूद नहीं है, 0x80070424

    कभी-कभी Windows इंस्टालर गड़बड़ियों का सामना कर सकता है। एक ऐसी गड़बड़ी जहां विंडोज अपडेट स्टैंडअलोन इंस्टालर, विंडोज डिफेंडर और विंडोज फ़ायरवॉल एक त्रुटि फेंकता है, वह है  0x80070424 निर्दिष्ट सेवा एक स्थापित सेवा के रूप में मौजूद नहीं है। यह कई अनुप्रयोगों को प्रभावित कर सकता है। विंडोज अपडेट स