MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

MongoDB Java - Đẩy đến một Mảng lồng nhau?

Bạn có thể tham chiếu mảng trong tài liệu phụ "level1" bằng cách sử dụng ký hiệu dấu chấm. Vì vậy, thay vì tạo các DBObject lồng nhau như bạn đã làm, bạn chỉ cần:

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

Tôi đã viết một bài kiểm tra để cho thấy điều này hoạt động:

@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. Phần mềm trung gian Mongoose pre.save () async không hoạt động như mong đợi

  2. Sắp xếp các bản ghi theo cách nào để chỉ các bản ghi phù hợp với id đứng trước?

  3. Loopback ValidationError:Phiên bản `Role` không hợp lệ. Chi tiết:`tên` đã tồn tại (giá trị:admin)

  4. Mẹo để chạy MongoDB trong sản xuất bằng cách sử dụng các luồng thay đổi

  5. Mongodb:tại sao show dbs không hiển thị cơ sở dữ liệu của tôi?