Rethinkdb 仅更改提要 return 更改

Rethinkdb change feed only return the changes

我在连接到 rethinkdb 的 Node js 中使用 rethinkdbdash。 使用下面的代码我得到了整个文档已经更改(旧值和新值)。

r.db(db).table('test')
  .changes()
  .run()
  .then(function(feed){
    feed.each(function(err, item){
      io.emit('change message', item);
    })
  })

我只想要已经更改的字段和新值。

知道如何解决这个问题吗?

提前致谢!!

您可以将服务器上的更改文档进行转换,使其成为您想要的形式。像这样的东西可能会做你想要的:

r.table('test').changes().map(function(row) {
  return row('old_val').keys().setUnion(row('new_val').keys()).concatMap(function(key) {
    return r.branch(row('old_val')(key).ne(row('new_val')(key)).default(true),
                    [[key, row('new_val')(key).default(null)]],
                    []);
  }).coerceTo('object');
})