基本上我是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 })
是的,它没有被应用,但是当我们运行命令申请验证它给人的成功。那么可能是什么原因? –