在RethinkDB上使用Pluck / Without eqJoin()

时间:2014-01-06 22:22:12

标签: javascript rethinkdb

我使用(如建议的in 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(),而没有“基础”表,是否有办法完成它?

1 个答案:

答案 0 :(得分: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"