Mongoose: 在单个调用中执行多个查询的 populate 操作

8 浏览
0 Comments

Mongoose: 在单个调用中执行多个查询的 populate 操作

在Mongoose中,我可以使用查询populate来在查询之后填充额外的字段。我还可以填充多个路径,例如:

Person.find({})
 .populate('books movie', 'title pages director')
 .exec()

然而,这将生成一个查找book以获取title、pages和director字段的查询,还将生成一个查找movie以获取title、pages和director字段的查询。我想要的是只从books中获取title和pages,并从movie中获取director。我可以这样做:

Person.find({})
 .populate('books', 'title pages')
 .populate('movie', 'director')
 .exec()

这样可以得到我期望的结果和查询。

但是有没有办法以类似第一个示例的“单行”语法来实现第二个示例的行为呢?原因是我想要以编程方式确定populate函数的参数并将其提供给它。我无法为多个populate调用做到这一点。

0