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

MongoDB में उप-उप-सरणी आइटम कैसे सेट करें?

यदि आप सरणी में अनुक्रमणिका जानते हैं तो आप डॉट नोटेशन का उपयोग करके सीधे सरणी तत्व तक पहुंच सकते हैं।

update(
{ _id: ObjectId(xxxx) },
{ $set: { 'columns.0.panels.0.top' : 125}}
)

सुनिश्चित करें कि आपने डॉट नोट किए गए पथ को एक स्ट्रिंग के रूप में उद्धरण चिह्नों में संलग्न किया है।

संपादित करें:

यह कैसे गतिशील रूप से काम कर सकता है, इस पर अधिक विवरण देने के लिए, मैं PHP में एक उदाहरण दूंगा:

$action = array("columns.$colNum.panels.$panelNum" => $newValue);

हां, पोजिशनल ऑपरेटर है। , लेकिन यह काफी उन्नत नहीं लगता सरणियों के भीतर सरणियों को बदलने के लिए, यह MongoDB 1.7.0 में बदल सकता है

इस जानकारी को नेस्टेड दस्तावेज़ में भरने की कोशिश करने के बजाय आप एक विकल्प कर सकते हैं। इसे समतल करने का प्रयास करें। आप एक संग्रह बना सकते हैं जिसमें पैनल और कॉलम ऑब्जेक्ट हों:

स्तंभ वस्तु:

{
_id: // MongoId
type: 'column',
user: 'username',
order: 1,
width: 30,
}

पैनल ऑब्जेक्ट:

{
_id: //MongoId
type: 'panel',
user: 'username',
parentColumn: //the columns _id string
top: 125,
left: 100
}

फिर आप वे सभी कॉलम ढूंढ सकते हैं जो उपयोगकर्ता से संबंधित हैं:

find({ type: 'column', user:'username'});

आप एक विशिष्ट कॉलम के लिए सभी पैनल ढूंढ सकते हैं:

find({type: 'panel', columnOwner:'ownerID'});

चूंकि प्रत्येक कॉलम और पैनल में MongoDB द्वारा दी गई एक विशिष्ट आईडी होगी, आप आसानी से क्वेरी कर सकते हैं और विकल्प सेट कर सकते हैं।

update({'_id': ObjectId('idstring')}, {$set : { 'top' : 125}});


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

  2. MongoDB _id . के आधार पर प्रति मिनट नए दस्तावेज़ों की संख्या की गणना करता है

  3. सी # - मोंगोडीबी - नेस्टेड दस्तावेज़ के अंदर एक तत्व अपडेट करें

  4. MongoDB क्वेरी का परिणाम सहेजा जा रहा है

  5. MongoDB API का उपयोग करके Azure CosmosDB में विभाजित संग्रह में कई दस्तावेज़ कैसे हटाएं?