Я пытаюсь придумать способ обновить значения в массиве объектов в монго. У меня есть коллекция, которая выглядит как
[
{ CourseName: '',
Sessions: [
{
_id: null, //oops I didn't set this in the import
Name: 'blah',
Location: 'moon'
}]
}
]
Теперь мне нужно установить поле _id. Я попробовал документированный подход к выполнению
db.Course.update({'Sessions._id': null}, {$set:{'Sessions.$._id': ObjectId()}}, false, true)
Но я столкнулся с этой ошибкой http://jira.mongodb.org/browse/SERVER-1055, что означало, что я не смог этого сделать. Есть ли какой-то синтаксис, который позволит мне просто перебирать коллекцию и обновлять каждую запись вручную? Я попробовал несколько вещей, таких как
db.Course.find().forEach(
function(course)
{
course.Sessions.forEach(function(session)
{
session._id=ObjectId();
course.Save(session); //Don't know how to save a single object
});
});
но они не работали. Я ищу способ обновить это значение в каждом сеансе.