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

Array mit eindeutigen Werten über alle Dokumente einer Sammlung

Es könnte möglich sein, wenn Sie bereit sind, die eindeutigen Werte in einer anderen Sammlung zu speichern . Es wäre wie folgt aufgebaut:

{ "uniquestring" : "a", "account" : 111 }
{ "uniquestring" : "b", "account" : 111 }
{ "uniquestring" : "c", "account" : 111 }
{ "uniquestring" : "d", "account" : 222 }
{ "uniquestring" : "e", "account" : 222 }
{ "uniquestring" : "f", "account" : 222 }

Ich bin kein Experte für Mongoose, aber ich glaube, dass Sie Modelle definieren können, um Sammlungen miteinander zu verknüpfen, wobei das Account-Feld hier auf das _id-Feld der Account-Sammlung verweist.

Jetzt können Sie die Eindeutigkeit mit einem einfachen Index erzwingen:

db.uniquestrings.createIndex( { "uniquestring" : 1 } , { unique : true } )

Jetzt muss Ihre App beim Speichern der Daten etwas mehr Arbeit leisten (sie muss sowohl in der Uniquestrings-Sammlung als auch in der Accounts-Sammlung gespeichert werden), aber Sie haben jetzt die Durchsetzung der Eindeutigkeit dieser Zeichenfolgen auf Datenbankebene für alle die Datenbank.

PS-Änderungen sind von jedem willkommen, der detailliertere Kenntnisse darüber hat, wie man solche Modelle in Mungo implementiert und verwendet.