查找未被其他表引用的文档

时间:2015-10-13 09:02:04

标签: python rethinkdb rethinkdb-python

" not_eq_join",如果有意义的话。

A有一个表A,其中的文档包含_key字段(它是主键),另一个表B包含refs字段指向A._key,这是一个多索引,因此它可能包含对A中文档的多个引用。 A非常大,但B不是(可能小于1000)

A中的条目:

{
  '_key': 'doc1',
  ...
}

B中的条目:

{
  'refs': ['doc1'],
  ...
}

问题是;如何找到AB中任何文档 引用的文档?

我天真的解决方案是从B.refs多索引(但如何做到这一点?)中检索所有唯一值到数组变量,然后在{{.filter(refArray.contains(R.row['_key']).not_())上执行以下操作:A 1}}选择(也按其他标准过滤)。

但这似乎是错误的,还有更好的想法吗?

当然,我希望尽快做到这一点"" :)

1 个答案:

答案 0 :(得分:1)

假设B引用的文档数量很少,那么您的解决方案可能是最好的。

您可以通过编写r.table('B').distinct({index: 'refs'})来获取索引中的不同值(包括多索引)。

如果B引用的文档数量与A的大小相比较大,那么这将非常难以有效地完成。