sql >> Databáze >  >> NoSQL >> MongoDB

Mongoose Compound Index Unikátní + řídký

Ve skutečnosti jste byli docela blízko řešení, vše, co potřebujete použít při vytváření indexu:

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

Ujistěte se, že máte alespoň 3.2 verzi mongo

Příklad:

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:Možná můžete udělat malý "hack" a použít toto:partialFilterExpression: { serialNr: {$exists:true}, serialNr: {$gte:0} }

Zkoušel jsem použít $ne, ale házelo mi to chybu.




  1. Jaký je nejlepší způsob, jak zjistit, která ID v kolekci neexistují, když je uveden seznam ID?

  2. Ověření příkazového řádku prostředí MongoDB se nezdařilo

  3. MongoDB $toDate

  4. Jak vytvořit zkracovač URL s Node.js a MongoDB