MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Mongoose _id'ss salvato come stringa invece di ObjectId

Questa è una domanda piuttosto specifica, ma se a qualcuno capita di imbattersi in un problema simile, il mio problema era che ho scritto un file con tutti i miei documenti come json per usare mongoimport su un server remoto.

Il problema era che JSON.stringify() convertirà un objectId in una stringa. Per risolverlo ho appena scritto un piccolo script per scorrere tutti gli oggetti nell'array dei miei utenti e riconvertire tutti gli _id in objectId con il seguente comando:

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

Quindi chiamando Model.create() sul mio modello mangusta con i documenti aggiornati da inserire in blocco ed eliminando i documenti originali