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

109
Visualizações
Convierta campos de cadena en campos de ObjectID en MongoDB usando Mongoose

Tengo una base de datos MongoDB con dos esquemas: usuarios y publicaciones. Solía verse así:

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

Pero ahora he decidido cambiar los tipos de campos de referencia de String a ObjectId, así que ahora tengo:

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

Pero los datos antiguos en la base de datos aún se almacenan como cadenas. ¿Cómo puedo migrar esos datos correctamente?

Uso Mongoose para consultar la base de datos desde mi código.

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

0

Debe usar model.find({}) para obtener todos los documentos de publicación y luego recorrer cada documento y actualizar cada documento

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

0

Puede usar model.find({}) para obtener todos los documentos y recorrerlos y actualizarlos.

 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