sql >> Database >  >> NoSQL >> MongoDB

Mongoose Samengestelde Index Uniek + Sparse

Je was eigenlijk heel dicht bij de oplossing, alles wat je nodig hebt om dit te gebruiken bij het maken van index :

partialFilterExpression: { serialNr: {$exists:true} }

Zorg ervoor dat u ten minste 3.2 versie van mongo heeft

Voorbeeld :

db.col.createIndex({a:1, b:1},{unique:true, partialFilterExpression: { a: {$exists:true} })
db.col.save({a:50, b:27}) //pass
db.col.save({a:50, b:27}) //fails
db.col.save({b:27}) //pass
db.col.save({b:27}) //pass
db.col.save({b:27}) //pass
db.col.save({a:50, b:27}) //fails
db.col.save({a:50}) //pass
db.col.save({a:50}) //fails

PS:Misschien kun je een beetje "hacken" en dit gebruiken:partialFilterExpression: { serialNr: {$exists:true}, serialNr: {$gte:0} }

Ik heb geprobeerd $ne te gebruiken, maar ik kreeg een foutmelding.




  1. Node js Mongodb Query NumberLong

  2. Kan geneste VariableOperators.mapItemsOf niet gebruiken in Spring Data MongoDb

  3. Hoe een unieke e-mail te garanderen, gebruikersnaam gaat MongoDB binnen met Mongoose

  4. Redis-sessiestatus configureren op Azure