java - MongoDB JSON 数组中的 JSON 对象字段删除

标签 java android mongodb

我有一个 json 对象如下:

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

我正在尝试通过 java 驱动程序删除 Likes 数组中的特定事件 首先尝试在 shell 中执行此操作:

> db.users.update( {'likes.event_id' : 4578541212}, { '$unset':{'likes.event_id'
: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}}})

关于java - MongoDB JSON 数组中的 JSON 对象字段删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13056468/

相关文章:

java - 如何在 shell 脚本中运行 Picard(生物信息学)工具时消除 Java 异常错误?

android - 如何检查混淆过程,所以我知道需要这么长时间?

ruby-on-rails - Mongoid 批量更新/Upsert 替代方案?

python - MongoDB - 计数已弃用

javascript - MongoDB查询坐标符合一定范围的对象

java - 使用 Schedulers 时,System.out.println 在 RxJava 中不打印任何内容

java - 正则表达式在字符串的两次连续出现之间进行搜索,第二个可能是可选的

java - PlayFramework 如何使代码更改出现在运行时?

android - 将毕达哥拉斯应用于加速度计

Android 处理应用程序更新和数据库更改