如何获取嵌套查询更改源的初始值?
我的情况我有Twitter用户的表 - 每个用户都有一个包含多个标签的字段。 现在我想订阅所有用户的推文,这些推文被'hello'和'world'标记,并应用一些额外的过滤(例如没有转推)。
要显示最近的推文,必须先订购。
这是我目前的尝试,效果很好(没有订购):
r.table('users')
.filter(user => {
return user('tags')('text').contains(r.args(['hello', 'world']));
})
.getField('id_str')
.coerceTo('array')
.do(users => {
return r.db('twitterdb').table('tweets').getAll(r.args(users), {index: 'user_id'})
})
.filter(tweet => {
return tweet.hasFields('retweeted_status').not();
})
.changes({includeInitial: true})
.limit(5)
根据文件:
orderBy必须与索引一起使用。 orderBy需要限制;也不 命令单独工作。 orderBy必须与二级索引一起使用 或主要指数;它不能与未索引的字段一起使用。 https://www.rethinkdb.com/docs/changefeeds/javascript/
无法链接使用辅助索引的orderBy命令 在getAll之后。您只能在表命令后链接它。然而, 你可以在一个命令提供它之后链接orderBy 相同的指数。 https://www.rethinkdb.com/docs/secondary-indexes/javascript/