2016-06-13 4 views
3

Der Code prüft, ob ein Dokument in der DB existiert (mit pre save hook) und fügt es ein, wenn es nicht existiert. Es funktioniert gut, aber nicht für das erste Dokument. Es wird immer eingefügt. Es scheint, dass dieses erste Dokument den PreSave-Hook nicht auslöst.mongoose immer das erste Dokument einlegen und den pre save hook überspringen

+0

Kann Mongos ** _ upsert _ ** -Funktionalität helfen? Vielleicht kann dieser [stackoverflow thread] (http://stackoverflow.com/questions/9661081/mongoose-update-upsert) einige Dinge klären. – FlorianE

Antwort

1

Der Pre-Speichern-Hook ist nicht der richtige Weg, um Duplikate zu vermeiden. Sie sollten findOneAndUpdate verwenden.

kann Ihr Problem sein:

  1. Sie versuchen asynchron mehrere Dokumente zu speichern: der Haken Ausführungsreihenfolge nicht vorhersehbar ist
  2. Sie haben einen reduzierten Index auf apiProductId erstellt und Sie für einen null Wert überprüft .
Verwandte Themen