javascript - 更新 RethinkDB 中的对象数组

标签 javascript database rethinkdb

我有以下代表聊天室的文档,其中成员对象中的时间戳代表该特定用户在房间中的最后事件。

{
  "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/

相关文章:

javascript - 如何将笔记的多个修订合并为一个版本?

JavaScript 按唯一性对数组进行排序

javascript - Angular:等到所有子组件都呈现后再运行代码

php - 使用类别 ID 分页

mongodb - 删除大量数据后如何减少MongoDB存储空间

node.js - NodeJS 与 rethinkDB 的 promise

c# - 我应该使用哪个 ReThinkDB .NET 驱动程序?它们之间的功能差异是什么?

javascript - jQuery 悬停和滑动

sql - 查询多个数据库系统

Rethinkdb - 按另一个表中的值过滤