MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

MongoDB Java - Прехвърляне към вложен масив?

Можете да посочите масива в поддокумента "level1", като използвате нотация с точки. Така че, вместо да създавате вложени 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. Запитвания за async/await на драйвер на Node.js mongodb

  2. Защо стартирането на самостоятелен екземпляр на MongoDB като набор от реплики не се препоръчва в производството?

  3. MongoDB .Net драйвер 2.0 Pull (премахване на елемент)

  4. Относително импортиране на пакет в приложение на колба на python

  5. Команда за агрегиране на MongoDB към Java код