猫鼬填充 - 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);
});
})
我的任务是制作一系列菜肴,即登录用户选择的菜肴作为他的最爱。问题是,我得到的不是一个对象 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);
});
})