2012-10-24 76 views
0

我有一個JSON對象如下:JSON對象場去除內MongoDB的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}}) 

沒有運氣......我該如何管理呢?

+0

你想刪除'event_id'場從數組元素(留下一個空元素)還是刪除元素本身? – JohnnyHK

回答

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}}}) 
+0

非常感謝它的工作,但我有另一個問題: 當我執行你建議整個記錄被搞砸的命令(字段切換的地方),任何想法爲什麼這是happning? – Ranco