多个填充 – 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 });