Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

108
Visualizações
Convert String fields to ObjectID fields in MongoDB using Mongoose

I have a MongoDB database with two schemas - users and posts. It used to look like this:

username: {type: String},
following: {type: [String], ref: 'users'}

user_id: {type: String, ref: 'users'}
comment: {type: String}

But now I've decided to change reference fields' types from String to ObjectId so now I have:

username: {type: String},
following: {type: [Schema.Types.ObjectId], ref: 'users'}

user_id: {type: Schema.Types.ObjectId, ref: 'users'}
comment: {type: String}

But the old data in the database is still stored as Strings. How can I migrate that data properly?

I use Mongoose to query the database from my code.

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

You should use model.find({}) to fetch all the post documents and after that loop through each document and update each document

doc.user_id = mongoose.Types.ObjectId(doc.user_id); 
doc.save();
over 4 years ago · Santiago Trujillo Relatório

0

You can use model.find({}) to get all documents and loop through the docs and update it.


const media = await Media.find({});
            media.forEach(async (item) => {
            const update = await Media.findOneAndUpdate(
                    { _id: item._id },
                    { user: mongoose.Types.ObjectId(item.user) },
                    { upsert: true }
                );
            });```
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda