2016-11-23 6 views
0

Gibt es eine eingebaute Weise zu sagen, dass ein Feld eindeutig sein sollte, wenn es nicht null ist. Ich möchte beispielsweise, dass Benutzer eine eindeutige Telefonnummer haben, dies ist jedoch kein erforderliches Feld. Es kann also null sein, und daher bricht es die eindeutige Einschränkung, wenn ein anderer Benutzer ohne eine Telefonnummer hinzugefügt wird.Eindeutige wenn nicht Null Check-in Mungo

Dies ist fast die gleiche Frage: mongoDB/mongoose: unique if not null aber mit neueren Versionen von Mungo und Mongodb, ich denke, es sollte einen besseren Weg, dies zu erreichen.

+0

können Sie Partial Index mit einzigartiger Constraint verweisen verwenden: https: //docs.mongodb.com/v3.2/core/index-partial/#partial-index-with-unique-constraints – Sam

Antwort

1

Wenn Sie nicht wie in spärlich und eindeutige Indizes kombinieren gerne Antwort zur Verfügung gestellt Sie

db.users.ensureIndex({ phone: 1 }, { unique: true, sparse: true }); 

Sie partial index verwenden können, die nicht in Mungo implementiert ist, aber als native Betreiber.

db.users.createIndex(
    { phone: 1 }, 
    { partialFilterExpression: { phone: { $exists: true } } } 
)