RethinkDB:​​订阅数组中项目的更改

时间:2016-08-09 18:13:55

标签: javascript rethinkdb

user.posts是一个对象数组。我试图只在用户更改帖子或添加新帖子时触发回调。我应该如何过滤此查询以确保在用户的帖子发生更改时我只获得更新?我怎么知道帖子数组中的哪个帖子发生了变化?谢谢你的帮助。

r.table('users')('posts').changes().filter(function(posts){
  posts('new_value').difference(posts('old_value'))
 }).run(conn, (err, cursor) => {
  if (err) return
  cursor.each((post) => {
    // This is a single post that just changed, do something with it...
  })
})

用户行组成的用户

user = {id: '', posts:[
  {id: '', content: ''},
  {id: '', content: ''},
], other: ''}

1 个答案:

答案 0 :(得分:1)

您可以撰写r.table('users').changes().filter(function(change) { return change('new_val')('posts').setDifference(change('old_val')('posts')).ne([]); })