Mongodb v4文档验证失败

时间:2019-05-19 16:35:41

标签: mongodb jsonschema

我对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")

}

1 个答案:

答案 0 :(得分:0)

错误与日期字段有关(ISOdate vs ISO vs“ date” bsonType)