find文档,并使用Node.JS Mongoose将值插入MongoDB中的数组

我有一个名为“最喜欢”的mongodb集合该集合的模式如下所示:

var favoritesSchema = new Schema({ postedBy: { type: mongoose.Schema.Types.ObjectId, ref: 'User' }, dishes:[ { type: mongoose.Schema.Types.ObjectId, ref: 'Dish' } ] }, {timestamps:true} ); var favoritesModel = mongoose.model('Favorite',favoritesSchema); 

现在我需要的是find确切的文档具有特定的张贴,并需要插入值的arrays菜。 我的代码如下所示

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

然而,这是与TypeError失败:无法读取未定义的属性“推”。 请帮忙。

favorite是一个最喜欢的文件数组,因为你使用的是find 。 你想在这里使用findOne ,所以favorite是你想要更新的单个文档。

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