多个填充 – mongoosejs

只是一个简单的查询,例如在模型中使用双引号。

架构/模型

var OrderSchema = new Schema({ user: { type : Schema.Types.ObjectId, ref : 'User', required: true }, meal: { type : Schema.Types.ObjectId, ref : 'Meal', required: true }, }); var OrderModel = db.model('Order', OrderSchema); 

询问

 OrderModel.find() .populate('user') // works .populate('meal') // dont works .exec(function (err, results) { // callback }); 

我已经尝试过类似的东西

 .populate('user meal') .populate(['user', 'meal']) 

实际上只有一个填充作品。

那么,如何获得两个人口工作?

您已经使用了正确的语法:

 OrderModel.find() .populate('user') .populate('meal') .exec(function (err, results) { // callback }); 

也许这个订单中的ObjectId不在Meals集合中?

如果您使用的是Mongoose> = 3.6,则可以传递一个由空格分隔的path名string来填充:

 OrderModel.find() .populate('user meal') .exec(function (err, results) { // callback }); 

http://mongoosejs.com/docs/populate.html