2017-06-19 1 views
1

Ich habe ein E-Mail-Feld als einzigartig festgelegt, aber es ist nicht erforderlich.Mungo-Feld nicht erforderlich, aber einzigartig

Das Problem ist, dass, wenn der Benutzer nichts eingeben Mongoose setzt "Null" in es. Dies führt zu Duplikaten, da jedem Benutzer, der das E-Mail-Feld nicht eingibt, "Null" zugewiesen wird.

Was ist das Standardverfahren, um dies zu vermeiden?

Dank

+0

Wie wird der Standardwert berechnet werden? Welche Art von Datentyp ist das Feld? – PeterVC

+0

es ist eine Zeichenfolge. Ich denke, ich könnte eine Zufallszahl in String-Form hineinlegen? –

Antwort

1

spärlicher eindeutigen Index

Verwendung Wenn ein Dokument für der Indexeintrag keinen Wert für ein Feld hat, wird dieses Element in einem Index null sein, die es enthält. Daher möchten Sie in vielen Situationen die eindeutige Einschränkung mit der Sparse-Option kombinieren. Sparse-Indizes überspringt jedes Dokument, dem das indizierte Feld fehlt, statt Null für den Indexeintrag zu speichern.

db.collection.createIndex({ a: 1, b: 1 }, { unique: true, sparse: true })

Weitere Informationen: https://docs.mongodb.com/v3.0/tutorial/create-a-unique-index/

+1

Danke Mann! das ist, was ich gesucht habe –

Verwandte Themen