MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Mongoose salvou _id'ss como uma string em vez de ObjectId


Esta é uma pergunta bastante específica, mas se alguém se deparar com um problema semelhante, meu problema foi que escrevi um arquivo com todos os meus documentos como um json para usar o mongoimport em um servidor remoto.

O problema era que JSON.stringify() converterá um objectId em uma string. Para corrigi-lo, escrevi apenas um pequeno script para percorrer todos os objetos no meu array de usuários e converter todos os _id's de volta para objectId's com o seguinte comando:
var mongoose = require('mongoose');
user._id = mongoose.Types.ObjectId(users[i]._id);

Em seguida, chamando Model.create() no meu modelo mangusto com os documentos atualizados para inserção em massa e exclui os documentos originais