我有一份如下文件 -
{
"badgeCount": {
"0e2f8e0c-2a18-499d-8e64-75b5d284e31a": 0 ,
"c0d07f5c-25ff-4829-8145-c33c0871f889": 0
} ,
"createdDate": Mon Oct 10 2016 19:25:10 GMT+00:00 ,
"deleted": false ,
"id": "1330c8b8-38a2-46e4-b93d-f7ff84a423ed",
"joinedUserIds":
[
"0e2f8e0c-2a18-499d-8e64-75b5d284e31a"
]
}
我想要做的是删除joinedUserId“0e2f8e0c-2a18-499d-8e64-75b5d284e31a”并通过删除同一查询中的第一个属性“0e2f8e0c-2a18-499d-8e64-75b5d284e31a”:0来更新badgeCount .
我尝试更新badgeCount,如下所示 -
r.db('mydb').table('discussion').filter({"id": "1330c8b8-38a2-46e4-b93d-f7ff84a423ed"})
.update(function(s){
return {
badgeCount: s('badgeCount').without("0e2f8e0c-2a18-499d-8e64-75b5d284e31a")
}
})
但它不起作用 . 不知道我错过了什么 .
谢谢Anup
1 回答
重新思考't work like this. It doesn' t用
update
重写对象 .所以,对于这种情况,你需要
replace
当前对象 . 并且,顺便说一句,最好使用get
而不是filter
,因为它导致's faster. There are doing the same in this situation '因为id字段是唯一的 .因此,如果要从
badgeCount
中删除"0e2f8e0c-2a18-499d-8e64-75b5d284e31a"
,则应使用replace: