一尘不染

如何在同一条语句中使用填充和聚合?

node.js

这是我的约会集合:

{ _id: ObjectId("518ee0bc9be1909012000002"), date: ISODate("2013-05-13T22:00:00Z"), patient:ObjectId("518ee0bc9be1909012000002") }

{ _id: ObjectId("518ee0bc9be1909012000002"), date: ISODate("2013-05-13T22:00:00Z"), patient:ObjectId("518ee0bc9be1909012000002") }

{ _id: ObjectId("518ee0bc9be1909012000002"), date: ISODate("2013-05-13T22:00:00Z"), patient:ObjectId("518ee0bc9be1909012000002") }

我用聚合得到以下结果

{date: ISODate("2013-05-13T22:00:00Z"),
patients:[ObjectId("518ee0bc9be1909012000002"),ObjectId("518ee0bc9be1909012000002"),ObjectId("518ee0bc9be1909012000002")] }

像这样:

Appointments.aggregate([
{$group: {_id: '$date', patients: {$push: '$patient'}}},
{$project: {date: '$_id', patients: 1, _id: 0}}
], ...)

我该如何填充我做到这一点但没有用的患者文档Appointments.find({}).populate("patient").aggregate……。

换句话说,我可以在同一条语句中使用填充和聚合吗

任何帮助请


阅读 210

收藏
2020-07-07

共1个答案

一尘不染

使用最新版本的猫鼬(mongoose> = 3.6), 可以 但需要第二次查询,并且使用不同的填充方式。汇总后,请执行以下操作:

Patients.populate(result, {path: "patient"}, callback);

有关更多信息,请访问Mongoose
API
Mongoose文档

2020-07-07