" not_eq_join",如果有意义的话。
A有一个表A
,其中的文档包含_key
字段(它是主键),另一个表B
包含refs
字段指向A._key
,这是一个多索引,因此它可能包含对A
中文档的多个引用。 A非常大,但B不是(可能小于1000)
A
中的条目:
{
'_key': 'doc1',
...
}
B
中的条目:
{
'refs': ['doc1'],
...
}
问题是;如何找到A
中B
中任何文档 引用的文档?
我天真的解决方案是从B.refs
多索引(但如何做到这一点?)中检索所有唯一值到数组变量,然后在{{.filter(refArray.contains(R.row['_key']).not_())
上执行以下操作:A
1}}选择(也按其他标准过滤)。
但这似乎是错误的,还有更好的想法吗?
当然,我希望尽快做到这一点"" :)
答案 0 :(得分:1)
假设B
引用的文档数量很少,那么您的解决方案可能是最好的。
您可以通过编写r.table('B').distinct({index: 'refs'})
来获取索引中的不同值(包括多索引)。
如果B
引用的文档数量与A
的大小相比较大,那么这将非常难以有效地完成。