我对mongo相对较新,在生产环境中遇到的验证问题似乎不在开发环境中发生。
我认为这是由于在开发中没有将validationLevel设置为严格。
我现在已经在此上浪费了几个小时,所以我想去看看我们是否有任何mongo专家可以帮助我。
下面是我们集合的jsonSchema和未通过验证的文档。
没有人知道为什么验证失败。愚蠢的mongo没有给出任何有用的错误消息。
{
"validator" : {
"$jsonSchema" : {
"bsonType" : "object",
"required" : [
"name",
"subdomain",
"userLimit",
"isTrial",
"trialExpiryDate"
],
"properties" : {
"name" : {
"bsonType" : "string"
},
"subdomain" : {
"bsonType" : "string"
},
"userLimit" : {
"bsonType" : "int"
},
"isTrial" : {
"bsonType" : "bool"
},
"trialExpiryDate" : {
"bsonType" : "date"
},
"viewDisplayOrders": {
"bsonType" : "array"
}
}
}
},
"validationLevel" : "strict",
"validationAction" : "error"}
{
"_id" : ObjectId("5cc71aae77a8801149aab04d"),
"name" : "Mushroom Kingdom",
"subdomain" : "mushroom-kingdom",
"viewDisplayOrders" : [
{
"_id" : "5cc72902e2d2f112be40c937",
"displayOrder" : 0
},
{
"_id" : "5cc72dd5e2d2f112be40c96c",
"displayOrder" : 1
},
{
"_id" : "5cc74fbfe2d2f112be40ccba",
"displayOrder" : 2
},
{
"_id" : "5cc75658e2d2f112be40cf78",
"displayOrder" : 3
},
{
"_id" : "5cc720b148ba7011394abcbf",
"displayOrder" : 4
},
{
"_id" : "5cc8c32a5c62ac1ea3dd3d5b",
"displayOrder" : 5
}
],
"isTrial" : true,
"userLimit" : 10,
"trialExpiryDate" : ISODate("2019-05-28T00:00:00Z")
}
答案 0 :(得分:0)
错误与日期字段有关(ISOdate vs ISO vs“ date” bsonType)