我正在使用官方的Java驱动程序(版本为2.6.3)与MongoDB一起使用。我有一个包含购物清单的MongoDB集合。购物清单的格式如下:
{ "_id" : { "$oid" : "4e2af1f43f8de96494d5271d"} ,
"name" : "default" ,
"items" : [ { "description" : "Cheese" , "quantity" : 1 , "unit" : "kg"} ,
{ "description" : "Water" , "quantity" : 3 , "unit" : "bottle"} ] }
现在我想使用DBCollection
的update()
方法向列表中添加新项,但是无论我尝试什么,它都不起作用,虽然它告诉我:
{ "updatedExisting" : true , "n" : 1 , "connectionId" : 63 , "err" : null , "ok" : 1.0}
我的代码执行以下操作:
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
是一个 BasicDBObject
,它包含了新项目的数据。我还尝试使用 BasicDBObjectBuilder
和 JSON.parse()
来创建 update()
参数,但这并没有什么区别。
我也查看了其他帖子,尝试了谷歌搜索,但都没能解决问题。我错在哪里了?
感谢任何帮助!
Oliver