私はMongoDBを公式のJavaドライバ(バージョン2.6.3)で使用しています。ショッピングリストを含むMongoDBコレクションがあります。買い物リストはJavaドライバを使って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()
のパラメータを作成しようとしましたが、違いはありません。
私はまた、他の投稿を見て、googleingを試してみましたが、役に立たない。私は間違って何をしていますか?
ありがとうございました!
Oliver
MongoDB 2.5.3ドライバで正確なコードを実行したところ、うまくいきました。あなたが正しいDBを探していることを確認してください。 –
これは、MongoのJavaドライバのやや曖昧な構文をよりよく理解する方法として私にとって有益でした。ありがとう! – jsh