MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

मोंगोडब में नेस्टेड सरणी में डेटा डालें

आप निम्नलिखित अद्यतन विवरण के साथ "act_mgr" सरणी के अंदर एम्बेडेड "बिक्री" दस्तावेज़ को अपडेट कर सकते हैं:

> db.sales.update({"act_mgr.sales.last_interacted":"[email protected]"}, {$push:{"act_mgr.$.sales.agent":"[email protected]"}, $set:{"act_mgr.$.sales.last_interacted":"[email protected]"}})
> db.sales.find().pretty()
{
    "_id" : ObjectId("4f855061dd53351011000b42"),
    "act_mgr" : [
        {
            "sales" : {
                "agent" : [
                    "[email protected]",
                    "[email protected]"
                ],
                "last_interacted" : "[email protected]"
            }
        }
    ],
    "email" : "[email protected]",
    "name" : "Aman",
    "sales" : [
        {
            "sno" : 1,
            "message" : "description",
            "status" : "open"
        },
        {
            "sno" : 12,
            "message" : "assad",
            "status" : "open"
        }
    ]
}
> 

आप एरे में "डेवलपर" जानकारी वाले एम्बेडेड दस्तावेज़ को इस प्रकार जोड़ सकते हैं:

> db.sales.update({"_id" : ObjectId("4f855061dd53351011000b42")}, {$push:{"act_mgr":{ "developer" : {"agent" : ["[email protected]" ],  "last_interacted" : "[email protected]" } }}})
> db.sales.find().pretty()
{
    "_id" : ObjectId("4f855061dd53351011000b42"),
    "act_mgr" : [
        {
            "sales" : {
                "agent" : [
                    "[email protected]",
                    "[email protected]"
                ],
                "last_interacted" : "[email protected]"
            }
        },
        {
            "developer" : {
                "agent" : [
                    "[email protected]"
                ],
                "last_interacted" : "[email protected]"
            }
        }
    ],
    "email" : "[email protected]",
    "name" : "Aman",
    "sales" : [
        {
            "sno" : 1,
            "message" : "description",
            "status" : "open"
        },
        {
            "sno" : 12,
            "message" : "assad",
            "status" : "open"
        }
    ]
}
> 

$push और $set संशोधक के दस्तावेज़ "अपडेटिंग" दस्तावेज़ में पाए जा सकते हैं:http ://www.mongodb.org/display/DOCS/Updating

Mongo db के साथ एम्बेडेड दस्तावेज़ बनाने और अपडेट करने के बारे में अधिक जानकारी "डॉट नोटेशन (ऑब्जेक्ट्स में पहुंचना)" शीर्षक वाले दस्तावेज़ में मिल सकती हैhttp://www.mongodb.org/display/DOCS/Dot+Notation+%28Reaching+into+Objects%29

"$" पोजिशनल ऑपरेटर का उपयोग करके एम्बेडेड दस्तावेज़ों को अपडेट करने की जानकारी "अपडेटिंग" दस्तावेज़ के "द $ पोज़िशनल ऑपरेटर" अनुभाग में पाई जा सकती है।
http://www.mongodb.org/display/DOCS/Updating#Updating-The%24positionaloperator

सावधानी का एक शब्द:आम तौर पर एम्बेडेड दस्तावेज़ों का सभी समान संरचना से मेल खाना आम बात है, ताकि अलग-अलग एम्बेडेड दस्तावेज़ों को अधिक आसानी से संदर्भित किया जा सके। आपकी "बिक्री" सरणी इसका एक अच्छा उदाहरण है; प्रत्येक एम्बेडेड दस्तावेज़ में समान कुंजियाँ होती हैं, "स्नो", "संदेश", और "स्थिति"

हालाँकि, आपके "act_mgr" सरणी के अंदर एम्बेडेड दस्तावेज़ों में अलग-अलग कुंजियाँ होती हैं; पहले में "बिक्री" है, और दूसरे में "डेवलपर" है। इसके बजाय, शायद निम्नलिखित संरचना पर विचार करें:

"act_mgr" : [
    {
        "title" : "sales",
        "agent" : [
            "[email protected]",
            "[email protected]"
        ],
        "last_interacted" : "[email protected]"
    },
    {
        "title": "developer",
        "agent" : [
            "[email protected]"
        ],
        "last_interacted" : "[email protected]"
    }
]

अब, प्रत्येक एम्बेडेड दस्तावेज़ में समान कुंजियाँ, "शीर्षक", "एजेंट", और "last_interacted" होती हैं।

आप निम्न आदेश के साथ उप-दस्तावेजों को अद्यतन कर सकते हैं।

> db.sales.update({"act_mgr.title":"sales"}, {$push:{"act_mgr.$.agent":"[email protected]"}, $set:{"act_mgr.$.last_interacted":"[email protected]"}})

उम्मीद है कि यह आपको उन अद्यतनों को करने की अनुमति देगा जिनकी आपको आवश्यकता है, और शायद आपको स्कीमा डिज़ाइन के बारे में विचार करने के लिए कुछ भोजन दें। शुभकामनाएँ!




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. उल्का में एक मोंगो डेटाबेस संग्रह छोड़ना

  2. मोंगोडब में शीर्ष 5 मान कैसे खोजें? और इसमें समान मान नहीं होना चाहिए

  3. -d ध्वज का उपयोग करते समय mongorestore द्वारा किस प्रकार की फ़ाइलों या निर्देशिका की अपेक्षा की जाती है?

  4. MongoDB लोड के तहत धीमा प्रदर्शन कर रहा है

  5. DoctrineMongoDBBundle को Symfony2 में एक घातक त्रुटि मिल रही है