Je veux ajouter à tous les documents myCollection un champ « série » avec un nombre entier de série, par exemple:Ajouter un champ dans tous les documents d'une collection existante (mongodb)?
{"_id" : "507f191e810c19239de098db", "name" : "John", "serie" : "1"}
{"_id" : "507f191e810c19729de860ea", "name" : "Dave"}, "serie" : "2"}
{"_id" : "507f191e810c19729de564ou", "name" : "Kate"}, "serie" : "3"}
......
ObjectId (_id) n'est pas sexy pour afficher ou de se rappeler par Humains, donc Je veux le garder et ajouter un autre champ 'série' contenant des nombres simples, courts et uniques pour identifier chaque document, comme un numéro de série. J'ai donc essayé le script suivant, mais je suis la même valeur « serie » dans tous les docs:
for(var i=1; i < 543; i++){
db.myCollection.update({},
{ $set: {"serie": i}},
{ upsert:false, multi: true });
}
Merci pour votre aide.
Cette question est également beaucoup plus large que vous ne le pensez et n'est pas très clair pour votre objectif. Quel type d'ordre voulez-vous ajouter à ce champ croissant? Avez-vous pensé à la façon dont vous feriez une telle chose dans quelque chose comme une base de données SQL et comment croiriez-vous que le processus serait différent ici? Etes-vous conscient que la valeur '_id' que vous affichez ici est à la fois une clé primaire de valeurs uniques et monotone (toujours croissante)? –
@NeilLunn, Désolé de ne pas être clair, j'ai édité ma question, merci – user2981029