2017-04-30 51 views
1

文档并插入值转换成MongoDB的阵列我称之为“最爱”是如下该集合的模式的MongoDB的集合:找到如何使用Node.js猫鼬

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

现在我需要的是找到确切的文档具有特定的postingBy并且需要向阵列菜盘插入值。我的代码如下所示

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失败:无法读取未定义的属性'推'。 请帮忙。

回答

1

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) { ... 
+0

谢谢它的工作:) :) –