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');
})
我在连接到 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');
})