[英]Why this partialFilterExpression is throwing an error?
我有一個這樣的用戶架構,當用戶注冊時,我希望將默認值設置為null,但也希望將此值設置為唯一。 我從這篇文章嘗試了解決方案,我從字面上復制了相同的解決方案,但是仍然出現此錯誤MongoError: E11000 duplicate key error index: ppp-ng-dev.users.$mobile_1 dup key: { : null }
我的架構
const userSchema = new Schema({
mobile: {
type: Number,
required: false,
index: {
unique: true,
partialFilterExpression: {mobile: {$exists: true }}
},
default: null,
},
})
為什么即使語法正確也仍然收到此錯誤? (aparently)
問題在於,集合中有多個文檔,其中mobile
字段的值為null
。 這違反了指定索引的唯一性約束。 正如JohnnyHK在票證中指出的那樣,您鏈接:
請注意,唯一的稀疏索引仍然不允許具有電子郵件字段值為null的多個文檔,只有多個沒有電子郵件字段的文檔。
在您的特定情況下, partialFilterExpression
僅指定mobile
字段存在的索引文檔,其中包括定義該字段並將其顯式定義為null
文檔。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.