Mongoose: quelles sont les différences entre Model.create et Collection.insert

Je souhaite effectuer un travail d’insertion de lot dans MongoDB et j’ai trouvé deux méthodes pour mongoose:

Une façon est d’utiliser insert :

 dataArr = [ { id: "", name: "" } { id: "", name: "" } ] 

Collection.insert(dataArr)

et une autre manière est Model.create :

 Model.create(dataArr) 

les deux peuvent terminer le travail d’insertion par lot, mais quelle est la différence entre eux?

Lequel est le plus efficace?

Dans Mongoose, il y a Model.create et Collection.insert (ce dernier ne fait pas ssortingctement partie de Mongoose, mais du pilote MongoDB sous-jacent).

Selon le développeur de Mongoose, ils sont fondamentalement les mêmes quand ils sont appelés avec une série de documents, bien que regarder le code me laisse penser qu’il existe des différences subtiles ( avertissement : je n’ai pas bien regardé le code , donc je me trompe peut-être. à propos de ce qui suit):

  • using Model.create appellera tous les validateurs / hooks déclarés sur votre schéma;
  • Model.create effectue une .save pour chaque document du tableau, donnant lieu à N appels de firebase database ( N étant le nombre de documents du tableau); Collection.insert effectue un seul appel de firebase database volumineux.