MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Mongoose a enregistré _id'ss sous forme de chaîne au lieu d'ObjectId

C'est une question assez spécifique, mais si quelqu'un tombe sur un problème similaire, mon problème est que j'ai écrit un fichier avec tous mes documents au format json pour utiliser mongoimport sur un serveur distant.

Le problème était que JSON.stringify() convertirait un objectId en chaîne. Pour résoudre ce problème, j'ai écrit un petit script pour parcourir tous les objets de mon tableau d'utilisateurs et convertir tous les _id en objectId avec la commande suivante :

var mongoose = require('mongoose');
user._id = mongoose.Types.ObjectId(users[i]._id);

Ensuite, j'ai appelé Model.create() sur mon modèle de mangouste avec les documents mis à jour à insérer en bloc et supprimé les documents d'origine