2017-08-03 2 views
0

Il existe une méthode Model#create dans une Mongoose à laquelle je peux envoyer un tableau d'objets. Tout fonctionne correctement sauf le comportement lorsque certains des objets que j'essaye de créer n'ont pas pu être sauvegardés. Dans ce scénario dans err objet que je reçois, il y a des détails sur le premier objet qui a échoué, et dans succededItems je reçois un tableau des objets qui ont été enregistrés.Mongoose créer plusieurs objets dans un tableau avec un succès partiel

Je doute est-il possible d'entrer err ou d'une autre manière, un tableau dont les objets ont échoué à enregistrer et à raisonner, pourquoi est-ce arrivé?

Merci à l'avance.

Répondre

1

Malheureusement Mongoose returns only the first error, de sorte que votre meilleure option serait d'utiliser une combinaison de promesses:

Promise 
    .all(items.map(item => { 
     return Model.create(item) 
        .catch(error => ({ error })) 
    })) 
    .then(items => { 

     items.forEach(item => { 
      if (item.error) { 
       console.log("Item has failed with error", item.error); 
      } else { 
       console.log("Item created successfully"); 
      } 
     }); 

    });