Tôi đang sử dụng MongoDB với trình điều khiển Java chính thức (phiên bản 2.6.3). Tôi có một bộ sưu tập MongoDB chứa danh sách mua sắm. Một danh sách mua sắm có định dạngCập nhật mảng trong MongoDB bằng trình điều khiển Java
{ "_id" : { "$oid" : "4e2af1f43f8de96494d5271d"} ,
"name" : "default" ,
"items" : [ { "description" : "Cheese" , "quantity" : 1 , "unit" : "kg"} ,
{ "description" : "Water" , "quantity" : 3 , "unit" : "bottle"} ] }
Bây giờ tôi muốn thêm một mục mới vào danh sách với các phương pháp update()
của DBCollection
. Nhưng bất cứ điều gì tôi cố gắng nó sẽ không hoạt động mặc dù nó nói với tôi
{ "updatedExisting" : true , "n" : 1 , "connectionId" : 63 , "err" : null , "ok" : 1.0}
Mã của tôi không như sau:
BasicDBObject updateQuery = new BasicDBObject();
updateQuery.put("name", "default");
BasicDBObject updateCommand = new BasicDBObject();
updateCommand.put("$push", new BasicDBObject("items", newShoppingItem));
WriteResult result = shoppingLists.update(updateQuery, updateCommand, true, true);
newShoppingItem
là một BasicDBObject
chứa các dữ liệu cho các mục mới. Tôi cũng đã cố tạo các thông số update()
với BasicDBObjectBuilder
và JSON.parse()
nhưng không có sự khác biệt.
Tôi cũng đã xem xét các bài đăng khác, đã thử googleing nhưng không có kết quả. Tôi đang làm gì sai?
Cảm ơn bạn đã trợ giúp!
Oliver
Tôi đã chạy mã chính xác đó với trình điều khiển MongoDB 2.5.3 và nó hoạt động tốt. Đảm bảo bạn đang tìm kiếm đúng DB. –
Điều này hữu ích đối với tôi như một cách hiểu rõ hơn về cú pháp hơi mơ hồ trong trình điều khiển Java cho Mongo. Cảm ơn! – jsh