2

我正在使用(如this answer中所建议的那样)从一组键中选择多个文档:

r.expr([person-id1, person-id2, person-id3])
 .eqJoin(function(doc) { return doc; }, r.table("person"))
 .zip()

然后通过

r.expr([person-id1, person-id2, person-id3])
 .eqJoin(function(doc) { return doc; }, r.table("person"))
 .zip()
 .eqJoin("company_id", r.table("employers"))
 .zip()

这一切都很好。我想优化查询的唯一更改是我只需要employer_name来自雇主表的数据,因为有相当大的数据与“雇主”文档相关联。因为这个查询只包含eqJoins(),没有“基”表,有没有办法完成它?

4

1 回答 1

5

pluck实际上可以链接到任何流。我会这样做:

r.expr([person-id1, person-id2, person-id3])
 .eqJoin(function(doc) { return doc; }, r.table("person"))
 .zip()
 .eqJoin("company_id", r.table("employers"))
 .pluck({"right" : "employer_name"}, "left")
 .zip()

这给了你所有的"left"价值,而且只有"employer_name"正确的价值。

于 2014-01-06T23:25:45.260 回答