2016-10-28 59 views
1

好傢伙文件是我的問題的情況:貓鼬,/更新數據添加到一組集合在這裏

Categories模式是這樣的:

schema: { 
    _id: String, 
    name: String, 
    overview: String, 
    courses: [ 
     { 
      _id: String, 
      name: String 
     } 
    ] 
} 

我有多個類別記錄,上面收集Categories

在我需要什麼

我有一個[陣列]的Categories._id這樣

[ 
    '5812f3cb04700f2563c0e56a', 
    '5812f3ff04700f2563c0e56b', 
    ... 
] 

所有我想要的是PUSH這個對象{_id:5812f3ff04700f2563c0e56b, name:'SOMETHING' }陣列中列出的所有文件 of _id

是我的嘗試

Categories.update({ 
     '_id': { 
      $in : array_of_IDs 
     } 
    }, 
    { 
     $push :{ 
      'courses':{ _id: ret._id , name: ret.title } 
     } 
    }, function(err, respp){ 
     if(err) return res.negotiate(err); 
     else{ 
      req.addFlash('success', 'Categories updated successfully.'); 
      return res.redirect('/new-course'); 
     } 
    } 
); 

這上面的代碼

請幫忙(ID數組在收集與第1號)僅更新一個集合!

感謝

回答

1

可以嘗試使用multi: true作爲選項

Categories.update({ 
     '_id': { 
      $in : array_of_IDs 
     } 
    }, 
    { 
     $push :{ 
      'courses':{ _id: ret._id , name: ret.title } 
     } 
    },{ multi: true }, function(err, respp){ 
     //.... 
    } 
); 
+0

嘿感謝它的工作+1 –