基本上我是mongoDb和從文檔學習的新手。我想在MongoDb中定義集合時使用驗證器,validationLevel,validationAction。所以如果驗證數據沒有被插入或更新,我可能會出錯。我遵循this文件以供參考。然而,我在定義集合方面取得了成功,但是當我添加錯誤記錄時,它不會像文檔中提到的那樣給出錯誤。每當新記錄被插入時。你們可以幫我解決這個問題嗎?在Mongo中定義的集合中使用驗證器
我使用下面的命令來創建收集
db.createCollection("contacts",
{
validator: { $and:
[
{ phone: { $type: "string" } },
{ email: { $regex: /@mongodb\.com$/ } },
{ status: { $in: [ "Unknown", "Incomplete" ] } }
],
validationAction: "error"
}
}
)
我也使用相同的validationLevel命令嚴格象下面,但它也沒有解決。我用來插入記錄
db.createCollection("contacts",
{
validator: { $and:
[
{ phone: { $type: "string" } },
{ email: { $regex: /@mongodb\.com$/ } },
{ status: { $in: [ "Unknown", "Incomplete" ] } }
],
validationAction: "error",
validationLevel: "strict"
}
}
)
命令如下
db.contacts.insert({ name: "Amanda", status: "Updated" })
下面是一張原稿的預期輸出。
WriteResult({
"nInserted" : 0,
"writeError" : {
"code" : 121,
"errmsg" : "Document failed validation"
}
})
但我最終獲得成功輸出如下
WriteResult({ "nInserted" : 1 })
是的,它沒有被應用,但是當我們運行命令申請驗證它給人的成功。那麼可能是什麼原因? –