猫鼬填充 - Node.JS 创建多个对象

Mongoose populate - Node.JS creating multiple objects

我的任务是制作一系列菜肴,即登录用户选择的菜肴作为他的最爱。问题是,我得到的不是一个对象 ID 数组,即盘子:[123456,5678910],而是数组中只有一个盘子 ID 的同一用户的两个单独对象。

我认为问题出在我的架构中,所以有人可以给我一个想法吗?

var favoriteSchema = new Schema({

timestamps: true,


dishes: [{
    type: mongoose.Schema.Types.ObjectId,
    ref: 'Dish'
}],

postedBy: {
    type: mongoose.Schema.Types.ObjectId,
    ref: 'User'
}

});

编辑>>我的post方法按要求

.post(Verify.verifyOrdinaryUser, function (req, res, next) {
Favorites.create(req.body, function (err, favorite) {
    if (err) throw err;
    console.log('favorite created!');
    var id = favorite._id;
    favorite.postedBy = req.decoded._doc._id;
    favorite.dishes.push(req.body);
    favorite.save(function (err, favorite) {
        if (err) throw err;
        console.log('Updated Favorites!');
        res.json(favorite);
    });
});

你的post方法很好,第一次要添加喜欢的菜。下次您为同一用户添加一道菜时,您应该调用

Favorites.findOne({postedBy: req.decoded._doc._id}, function (err, favorite) {
  favorite.dishes.push(req.body);
  favorite.save(function (err, favorite) {
        if (err) throw err;
        res.json(favorite);
    });
})