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

306
Visualizações
Mongoose no puede guardar documentos incrustados

Estoy tratando de crear un documento en Mongo DB que tiene un documento incrustado dentro. El modelo/esquema del documento es el siguiente:

 var mongoose = require('mongoose'); var Schema = mongoose.Schema; // Cupboard Collection Schema var ShelfSchema = new Schema({ shelf_name: { type: String }, shelf_desc: { type: String } }); var CupboardSchema = new Schema({ cupboard_name: { type: String, required: true, unique: true }, cupboard_desc: { type: String, required: true }, shelf: [ShelfSchema] }, { timestamps: true }); module.exports = mongoose.model('Cupboard', CupboardSchema);

La imagen muestra el código para guardar el documento. Código para guardar documento

Cuando imprimo el "nuevo armario" en la consola, obtengo el documento en el formato exacto de la siguiente manera:

 { _id: 58e4b972931dc809f4127b0b cupboard_name: Cupboard A, cupboard_desc: Cupboard A Details, shelf: [ { shelf_name: Cupboard A, shelf_desc: Cupboard A Details, _id: 58e4c2742bfc0111dc47f149 }] }

Pero después de la ejecución, el documento incrustado no se guarda y no se muestra ningún error. El resultado final es el que se muestra a continuación:

 { _id: 58e4b972931dc809f4127b0b cupboard_name: Cupboard A, cupboard_desc: Cupboard A Details }

¿Alguien puede ayudarme a resolver esto? ¿Por qué el documento incrustado no se guarda en mongo db?

Gracias.

about 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

No guarda el documento incrustado como el documento completo dentro de otro documento. Tendrá que guardar el '_id' del documento y, en el momento de obtener el registro, llamará a populate() en la consulta.
Entonces, supongamos que tiene que guardar el documento en el esquema de Cupboard, el esquema se verá así:

 var CupboardSchema = new Schema({ cupboard_name: { type: String, required: true, unique: true }, cupboard_desc: { type: String, required: true }, shelf: { type: Schema.Types.ObjectId, ref: 'ShelfSchema'} }, { timestamps: true });

Ahora, en 'estantería', guarde el documento correspondiente que desea completar. Y cuando busque el documento, llame a populate() como:

 CupboardSchemaModel.find({_id: <some-id-you-want-to-fetch>}).populate('shelf');
about 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