Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

319
Views
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.

over 4 years ago · Santiago Trujillo
1 answers
Answer question

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');
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!