如何使用changes()在RethinkDB中进行分页?
这些选项都不起作用:
r.db('bustest').table('client').orderBy({index: r.desc("id")}).slice(3, 3).changes()
r.db('bustest').table('client').orderBy({index: r.desc("id")}).skip(3).limit(3).changes()
只有它有效:
r.db('bustest').table('client').orderBy({index: r.desc("id")}).limit(3).changes()
更新:
例如,在更改后跳过():
r.db('bustest').table('client').orderBy({index: r.desc("id")}).limit(3).changes({squash: 0.05, includeInitial: true, includeStates: true})
返回:
{
"state": "ready"
},
{
"new_val": {
"first_name": "Gruzin" ,
"id": "e9580339-b908-4349-a208-c3d1e25bf7ba" ,
"last_name": "Bagal"
}
},
{
"new_val": {
"first_name": "e31db5422cd74040" ,
"id": "efadedd0-56f2-498f-ad04-5191e2be1244" ,
"last_name": "27d6b3a140235275"
}
},
{
"new_val": {
"first_name": "2ba4a9d0e3616865" ,
"id": "f5c7f3b7-23d2-4661-a5b7-91b977635556" ,
"last_name": "b7f4df90a27bb05b"
}
},
{
"state": "initializing"
}
并跳过:
r.db('bustest').table('client').orderBy({index: r.desc("id")}).limit(3).changes({squash: 0.05, includeInitial: true, includeStates: true}).skip(3)
返回:
{
"state": "ready"
},
{
"new_val": {
"first_name": "Gruzin" ,
"id": "e9580339-b908-4349-a208-c3d1e25bf7ba" ,
"last_name": "Bagal"
}
}
更改后跳过()不起作用。但是对changes()的分页对我的项目非常重要。
答案 0 :(得分:1)
https://rethinkdb.com/docs/changefeeds/ruby/#filtering-and-aggregation
中记录的内容您无法在slice
skip
中使用它们。仅orderBy
,然后按limit
。 orderBy
之前只有changes
也有效
要对changes
本身进行分页,(通过更改Feed返回平均数据),在changes()
之后,您可以调用skip
,并自己迭代返回光标。但是,如果您在limit
之后使用slice
或changes
,则更改Feed仅返回该更改量,并关闭更改源。