आप वास्तव में समाधान के काफी करीब थे, अनुक्रमणिका बनाते समय आपको इसका उपयोग करने की आवश्यकता है:
partialFilterExpression: { serialNr: {$exists:true} }
सुनिश्चित करें कि आपके पास मोंगो का कम से कम 3.2 संस्करण है
उदाहरण:
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
पुनश्च:शायद आप थोड़ा "हैक" कर सकते हैं और इसका उपयोग कर सकते हैं:partialFilterExpression: { serialNr: {$exists:true}, serialNr: {$gte:0} }
मैंने $ne का उपयोग करने की कोशिश की, लेकिन यह मुझे एक त्रुटि दे रहा था।