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

मोंगोडीबी जावा - नेस्टेड ऐरे को धक्का दे रहा है?

आप डॉट नोटेशन का उपयोग करके उप-दस्तावेज़ "स्तर 1" में सरणी का संदर्भ दे सकते हैं। इसलिए, आपके जैसे नेस्टेड DBObjects बनाने के बजाय, आपको बस इसकी आवश्यकता है:

coll.update(entry, new BasicDBObject("$push", new BasicDBObject("level1.arr1", "val2")));

मैंने यह काम दिखाने के लिए एक परीक्षण लिखा:

@Test
public void shouldPushANewValueOntoANesstedArray() throws UnknownHostException {
    final MongoClient mongoClient = new MongoClient();
    final DBCollection coll = mongoClient.getDB("TheDatabase").getCollection("TheCollection");
    coll.drop();

    //Inserting the array into the database
    final BasicDBList array = new BasicDBList();
    array.add("val1");

    final BasicDBObject entry = new BasicDBObject("level1", new BasicDBObject("arr1", array));
    coll.insert(entry);

    // results in:
    // { "_id" : ObjectId("51a4cfdd3004a84dde78d79c"), "level1" : { "arr1" : [ "val1" ] } }

    //do the update
    coll.update(entry, new BasicDBObject("$push", new BasicDBObject("level1.arr1", "val2")));
    // results in:
    // { "_id" : ObjectId("51a4cfdd3004a84dde78d79c"), "level1" : { "arr1" : [ "val1", "val2" ] } }
}



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. मैं प्रतीक्षा डेटा के साथ एक पूंछ योग्य कर्सर को अंत तक कैसे ले जाऊं ताकि मुझे बस नए अपडेट मिलें

  2. MongoDb व्याख्या विफल:अज्ञात शीर्ष स्तरीय ऑपरेटर:$query

  3. MongoDB $query ऑपरेटर अनुक्रमणिका पर ध्यान नहीं देता है?

  4. मंगोलिया कनेक्शन त्रुटि

  5. एम्बेडेड दस्तावेज़ में मोंगोडब सीमा