0

次のようなjsonオブジェクトがあります。

{ "_id" : ObjectId("508806803bb97dc546e6f307"), "user_name" : "user1", "user_id" : 45645645, "likes" : [ { "event_id" : NumberLong("4578541212") },{ "event_id" : NumberLong("4578541213") } ], "dislikes" : [ ] }

Javaドライバーを介して好きな配列内の特定のイベントを削除しようとしていますが、最初にシェルでこれを実行しようとしました:

> db.users.update( {'likes.event_id' : 4578541212}, { '$unset':{'likes.event_id'
:1}})

運が悪い...どうすればそれを行うことができますか?

4

1 に答える 1

1

event_id配列要素からフィールドを削除するだけの場合:

db.users.update( {'likes.event_id' : 4578541212}, {'$unset':{'likes.$.event_id' :1}})

$pull演算子を使用して要素を削除します。

db.users.update({'likes.event_id': 4578541212}, {'$pull':{likes: {event_id: 4578541212}}})
于 2012-10-24T20:14:10.517 に答える