1
どのようにクライアントのフィルタ内のエージェントIDを選択できますか?RethinkDB/ReQLのフィルタで別のクエリの結果を使用する
は、これは私が今持っているものであり、それは動作しますが、私はエージェントを選択するために最初に私たちが待っていること好きではないし、我々はクライアントを選択するには、データベースへの別の旅行を行います。
それは、すべての「その後」なしで、チェイニングで1回の旅行で行うことができるという方法があります。
const clients = await r.table('agents').getAll(teamId, {index: 'teamId'})('id').then(agentIds =>
r.table('clients').filter(client => r.or(
r.expr(agentIds).contains(client('agentId')),
r.table('tasks').filter(
task => r.expr(agentIds).contains(task('agentId'))
)('clientId').contains(client('id'))
))
);
エージェントを最初に選択しないで、クライアントフィルタ機能内で行う方法がありますか? 。 r.table( 'クライアント')フィルタ(クライアント=> { //ここでそれを行う })。 –
'filter'の中にクエリを置くこともできますが、' clients'テーブルのすべてのドキュメントに対して余分な読み込みを発行するので、おそらく遅くなります。 – mlucy
私はRethinkDBがこれらの種類のネストされたクエリを最適化することを望んでいました –