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

189
Visualizações
Llamar al objeto en la matriz en el archivo Node js ejs

¡Buen trabajo a todos!

Tengo un proyecto que escribí con Node js. En este proyecto, tengo una estructura de esquema de la siguiente manera.

 const debt = new Schema({ name: { type: String, required: true, }, medicine: [{ data: { type: Schema.Types.ObjectId, ref: 'Medicine', }, quantity: { type: Number, default: 1 } }], total: { type: Schema.Types.Decimal128, default: 0, }, status: { type: String, required: true, }, createdAt: { type: Date, default: Date.now, }, });
 const medicine = new Schema({ name: { type: String, unique: true, required: true, }, price: { type: Schema.Types.Decimal128, required: true, }, medicineType: { type: String, required: true, }, description: { type: String, required: true, trim: true, }, image: { type: String, }, createdAt: { type: Date, default: Date.now, }, });

Puedo agregar con éxito datos a este esquema del cartero. Pero no puedo leer los datos en el archivo ejs, ¿cómo puedo hacer eso?

Puedo leer los datos a través de la consola y el código que uso en la consola es el siguiente:

 const debt = await Debt.find({}).populate('medicine.data').sort('-createdAt'); console.log(JSON.stringify(debt[0].medicine[0].data));

El código anterior devuelve con éxito tanto el esquema al que hace referencia como sus propios datos.

 <% for(let i=0; i< debt.medicine.length; i++) { %> <input type="checkbox" id="<%= medicine[i]._id%>" name="medicine" checked value="<%= debt.medicine[i].data%>"> <label for="<%= medicine[i]._id%>"><%= JSON.stringify(debt.medicine[i].data) %> - Select %> </label> <% } %>

Pero cuando hago esto en el archivo ejs, solo devuelve los valores de id y cantidad. Cuando lo imprimo en la consola, puedo acceder a todos los datos como en el esquema de medicamentos. ¿Por qué no puedo acceder al archivo ejs? ¿me puedes ayudar?

Los datos que devuelve cuando lo imprimo en la consola

 {"_id":"624e0b3633533f3a31e3dc6a","name":"Arveles","price":{"$numberDecimal":"19"},"medicineType":"Pill","description":"Medicine","image":"/uploads/1649281846287-medicine1.jpeg","createdAt":"2022-04-06T21:50:46.294Z","__v":0}

Cuando lo imprimo en ejs, devuelve un valor como este

 {"data":"624e0b3633533f3a31e3dc6a","quantity":2,"_id":"62537484a05359a8cf356fef"}
about 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Si, acabo de resolver la situación, no llené correctamente la página a través de la estructura de control... Tal vez le pueda pasar a otros, en tales estructuras, es necesario enviar dos datos dentro del proceso de poblamiento.

Solución al problema:

 const debt = await Debt.findOne({ _id: req.params.id }).populate('medicine.data');
 populate('medicine.data')

Puedo decir que todo el proceso gira aquí.

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