MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Mungo einzigartig:stimmt nicht

Dies geschieht, weil Sie das duplizierte Dokument vor mongoose speichern hat die Erstellung des Index abgeschlossen. Mongoose erstellt die Indizes unterwegs, nachdem Ihre App gestartet wurde.

Um sicherzustellen, dass Ihr Dokument erst gespeichert wird, nachdem die Indizes erstellt wurden, müssen Sie sich den index anhören Veranstaltung Ihres Modells. Zum Beispiel:

Model.on('index', function (error) {
  console.log(jp);
  jp.save(function(err){
    console.log(err);
    var jp2 = new Model({ phone: "123456"});
    console.log(jp2);
    jp2.save(function(err){
      console.log(err);
      process.exit();
    });
  })
});

Wenn Sie nun versuchen, das zweite Dokument (das duplizierte) zu speichern, löst Ihre MongoDB einen Fehler aus, weil Ihr save Aufrufe werden nur ausgeführt, nachdem die Indizes erstellt wurden.