J'essaie de trouver un moyen de mettre à jour les valeurs dans un tableau d'objets dans mongo. J'ai une collection qui ressemble àMise à jour des valeurs dans un tableau dans MongoDB
[
{ CourseName: '',
Sessions: [
{
_id: null, //oops I didn't set this in the import
Name: 'blah',
Location: 'moon'
}]
}
]
Maintenant j'ai besoin de définir le champ _id. J'ai essayé l'approche documentée de faire
db.Course.update({'Sessions._id': null}, {$set:{'Sessions.$._id': ObjectId()}}, false, true)
Mais je suis tombé sur ce bug http://jira.mongodb.org/browse/SERVER-1055 ce qui signifiait que je ne pouvais pas le faire. Y a-t-il une syntaxe qui me permettra juste de parcourir la collection et de mettre à jour chaque enregistrement à la main? J'ai essayé quelques choses comme
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
});
});
mais ils ne fonctionnaient pas. Je cherche un moyen de simplement mettre à jour cette valeur dans chaque session.
Belle, merci. – stimms
et dans mongo cli? –