Я пытаюсь найти способ обновить значения в массиве объектов в монго. У меня есть коллекция, которая выглядит какОбновить значения в массиве в MongoDB
[
{ 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
});
});
но они не работали. Я ищу некоторый способ просто обновить это значение в каждом сеансе.
Красивые, спасибо. – stimms
и в монго-кли? –