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

156
Visualizações
No puedo modelar. Encuentra los documentos que acabo de guardar en mi mangosta

esto es lo que estoy pasando ahora mismo: estoy insertando algunos valores en una colección llamada frutas y justo después de que termine, quiero consola. Inicie sesión en cada uno de ellos con el mapa, el primero intente las salidas de la consola en lugar de una fruta (una sola colección object) todos los objetos de frutas (modelo o colección), pero cuando vuelvo a ejecutar el mismo código (para que agregue nuevamente los mismos valores a las frutas de la colección), la consola muestra los objetos de frutas que se han insertado antes, seguidos de más frutas. (modelo o colección) objeto. ¿Qué puedo hacer para poder hacer uso de los documentos que acabo de insertar en mi colección? Este es el código:

 const db = require("mongoose"); const url = "mongodb://localhost:27017/personasDB"; db.connect(url); const fruitSchema = new db.Schema({ name:{ type: String, required: true, minlength: 3, maxlength: 20 }, price:{ type: Number, required:true, min: 0, max: 100 } }); const Fruit = db.model("fruits", fruitSchema); const fruits = ["pineapple", "apple", "banana", "orange"]; const prices = [12, 12.5, 4, 6.4]; for(let i = 0; i < fruits.length; i++){ const fruit = new Fruit({ name: fruits[i], price: prices[i] }); fruit.save(); } console.log(Fruit.find({}, function(err, elements){ if(err){ console.log(err); }else{ elements.map(fruit=>{ console.log(fruit); }); } }));

el primer registro

después de volver a ejecutar el código, obtengo lo que quiero justo después de las primeras salidas

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

El problema es que el método save() es asíncrono. No puede actualizar su base de datos en una línea y asumir que ya ha cambiado en la siguiente. Es probable que registre los documentos sin cambios.

Podría intentar usar Array#map() para obtener una serie de promesas y esperar a que todos los documentos se guarden en paralelo usando Promise.all() . Una vez que se guardan todos los documentos, puede ir y usar Fruit.find() .

 const fruits = ['pineapple', 'apple', 'banana', 'orange'] const prices = [12, 12.5, 4, 6.4] let promises = fruits.map((fruitName, i) => { const fruit = new Fruit({ name: fruitName, price: prices[i], }) return fruit.save() }) // Make sure, you're using `await` in an `async` function! await Promise.all(promises) // all the fruits are saved in the db console.log( Fruit.find({}, function (err, elements) { // ...
about 4 years ago · Juan Pablo Isaza 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