MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Indeks mieszanki mangusty Unique + Sparse

Właściwie byłeś całkiem blisko rozwiązania, wszystko, czego potrzebujesz, aby użyć tego podczas tworzenia indeksu :

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

Upewnij się, że masz co najmniej 3.2 wersję mongo

Przykład :

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że możesz zrobić mały "hack" i użyć tego:partialFilterExpression: { serialNr: {$exists:true}, serialNr: {$gte:0} }

Próbowałem użyć $ne, ale powodowało to błąd.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Klonowanie instancji MongoDB lub zestawu replik

  2. Nie można połączyć się z mongoDB uruchomioną w kontenerze docker

  3. Zmień nazwę pola typu złożonego znajdującego się w tablicy

  4. Przechowuj pliki na dysku lub MongoDB

  5. Kolekcja Meteorów słusznie obserwuje zmiany