我有以下代表聊天室的文档,其中成员对象中的时间戳代表该特定用户在房间中的最后事件。
{
"id": "4ff130cc-3201-4a30-8a4c-5ce4303d28d0",
"name": "General chat",
"members": [
{
"timestamp": 1437074682224 ,
"user_id": "bdb4c00c-0ce8-4e22-9331-38b5c4b083e4"
},
{
"timestamp": 1437074693805 ,
"user_id": "7708ebc6-915b-4bfd-b63e-849bacefa201"
}
]
}
当用户例如加入房间后,我想更新时间戳。这似乎是一个微不足道的操作,但我无法让它工作。
我正在使用官方 JavaScript 驱动程序。如何使用给定的 user_id 更新时间戳?
最佳答案
我最终过滤掉了除我感兴趣的成员之外的所有成员,并向其附加了一个新对象。
r.db("chat").table("rooms").get("room_id").update(function(room) {
return {
members: room("members").filter(function (member) {
return member("user_id").ne("relevant_user_id");
}).append({ user_id: "relevant_user_id", timestamp: 1337 })
};
});
不确定这是“正确的方法”。
关于javascript - 更新 RethinkDB 中的对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31470352/