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

架构/模型

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
    });

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

10-05 20:34