2016-10-28 4 views
1

Привет, ребята, вот ситуация моей проблемы:Mongoose, Добавить данные/обновления для набора документов коллекции

Мой Categories модель выглядит следующим образом:

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

У меня есть несколько категорий записано в вышеописанной коллекции Categories

ЧТО МНЕ НУЖНО

У меня есть [ массив ] из Categories._id как это:

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

Все, что я хочу, чтобы PUSH этого объекта {_id:5812f3ff04700f2563c0e56b, name:'SOMETHING' } ко всем документам, перечисленным в массиве от _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'); 
     } 
    } 
); 

Это выше код обновляет только один сбор (сбор с 1-ID в массиве идентификаторов)

Пожалуйста, помогите!

Благодаря

ответ

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 –

 Смежные вопросы

  • Нет связанных вопросов^_^