Mongoose 为我们提供了应用聚合挂钩的能力,该挂钩仅在将聚合应用于特定模型时才有效。
userSchema.post("aggregate", function() {
this.pipeline().push({$project: { _id: 1, firstName: 1, lastName: 1 }});});
上面的代码工作正常,当我们这样做时应用了正确的投影
User.aggregate([...])
但是当我们在另一个模型的聚合中查找用户时,不会应用相同的投影。
{
$lookup: {
from: "users",
localField: "user",
foreignField: "_id",
as: "associatedUser"
}
},
mongoose 中是否有一种方法,以便我们可以在模型级别应用投影,该投影适用于访问该模型的任何地方,并且我们不必在每个聚合查询中应用投影。