Dans l'une de mes collections, j'ai un _id
champ qui stocke des chiffres. Le champ a été défini à l'origine dans le modèle de mangouste comme String
. Cependant, toutes les données concernant ce champ dans la collection contiennent des entiers pure stockés comme des chaînes. Je souhaite conserver toutes les données de ma collection lors de la conversion du type de ce champ (et de tous les éléments associés _id
's) à partir de type String
pour taper Number
. Des suggestions comme comment faire cela? Merci.
db.getCollection('test').find().forEach(function (doc) {
db.getCollection('test').remove({ _id : doc._id});
tempId = new NumberLong(doc._id);
doc._id = tempId;
db.getCollection('test').save(doc);
}
);
Cela fera. Vous voudrez peut-être ajouter une erreur d'erreur selon votre cas d'utilisation. Assurez-vous également que vous avez une sauvegarde avant de migrer.