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

Warum benötigt MongoDB „unique:true“, um eine Sammlung zu erstellen?

Ich habe gerade versucht, das oben beschriebene Szenario auf meiner Seite mit nahezu derselben Version von Mongoose und MongoDB zu replizieren, es hat gut funktioniert, Dokumente wurden ohne die eindeutige Eigenschaft für firstName erstellt (und gespeichert). Feld im Schema. Ich glaube nicht, dass der Grund, warum Ihre Objekte nicht in der DB gespeichert wurden, das Fehlen der eindeutigen Eigenschaft ist.

Der Grund, warum die Sammlung nicht ohne die Unique-Eigenschaft erstellt wurde, ist auch, dass Mongoose (oder MongoDB selbst) keine Sammlung erstellt, bis Sie Daten in die Sammlung einfügen. Durch Hinzufügen der eindeutigen Eigenschaft müsste MongoDB ein Indexdokument für diese Eigenschaft in der Sammlung erstellen und folglich Daten zur Sammlung hinzufügen, und deshalb scheint die Sammlung erst nach dem Hinzufügen der eindeutigen Eigenschaft erstellt worden zu sein. Während also die Datei db.<collectionName>.find({} ) gibt möglicherweise nichts zurück, db.<collectionName>.getIndexes() würde dir was geben.