如何在RethinkDB中取消订阅更改源?更改结束时

时间:2016-05-07 12:35:42

标签: java rethinkdb

Cursor changeCursor = r.table("users").changes().run(conn);
for (Object change : changeCursor) {
    System.out.println(change);
}

我只需要知道一次更改。 我知道" changeCursor.close()"可以停止饲料。问题是我怎么知道这次改变的大小!!

如果添加了三个用户," System.out.println(更改)"执行thress次数。 如果只添加了一个用户," System.out.println(更改)"执行一次。 然后,我需要在RethinkDB中取消订阅Changefeeds。

changeCursor.toList();
changeCursor.iterator();

不做任何事!

changeCursor.hasNext();

Alaways true!

我不知道变化的次数。我不知道何时执行changeCursor.close()方法。

1 个答案:

答案 0 :(得分:0)

我不确定你在问什么。您似乎想立即获得第一个更改,然后关闭它。

你可以用javascrip驱动程序做这样的事情:

var r      = require('rethinkdb')

r.connect({
  host: 'localhost',
  port: 28015,
})
.then(function(conn) {
  return r.table('users').changes().run(conn)
})
.then(function(cursor) {
  cursor.next()
    .then(function(doc) {
      console.log(doc)
      //Ok, now right after we get the first doc, we will close the cursor
      cursor.close()
      // if we want, we can also close connection
      // cursor.close().then(conn.close())
    })
})