如何解决mongodb中的数据验证失败?

如何解决mongodb中的数据验证失败?,mongodb,validation,Mongodb,Validation,我创建了以下mongodb集合 db.createCollection("task3", {"validator": {"$and": [ {"Company.cname":{"$type":"string"}, "Company.city":{"$type":"string"}, "Company.street":{"$typ

我创建了以下mongodb集合

db.createCollection("task3",
                   {"validator": {"$and": [ {"Company.cname":{"$type":"string"},
                                 "Company.city":{"$type":"string"},
                                 "Company.street":{"$type":"string"},
                                 "Company.bldg#":{"$type":"int"},
                                 "Company.bldg#":{"$gt":0},
                                 "Company.bldg#":{"$lt":500},
                                 "Company.budget":{"$type": "double"},
                                 "Company.budget":{"$gt":0},
                                 "Company.Department.floor":{"$type":"int"},
                                 "Company.Department.dname":{"$type":"string"},
                                 "Company.Department.Employee.first_name":{"$type":"string"},
                                 "Company.Department.Employee.last_name":{"$type":"string"},
                                 "Company.Department.Employee.enumber":{"$type":"int"},
                                 "Company.Department.Employee.date_of_birth":{"$type":"date"},
                                 "Company.Department.Employee.position":{"$type":"string"},
                                 "Company.Department.Employee.position":{"position":{"$exists":false},
                                 "Company.Department.Employee.salary":{"$type":"double"}}]}});
我正在尝试插入以下数据

db.task3.insert(

        {  "Company":{ 
                "cname":"Google",
                "city":"Sydney",
                "street":"Pitt Street",
                "bldg#":NumberInt(100),
                "budget": 100000.0,

                "Department":{
               "dname":"Google",
               "floor":NumberInt(4),

         "Employee": {"first_name" : "George",
         "last_name": "Martin",  
        "enumber" : NumberInt(109),
         "date_of_birth": new Date('Dec 26,1981'),  
         "salary" : 70000.0 }}}});


当尝试这样做时,我收到以下错误

WriteResult({
    "nInserted" : 0,
    "writeError" : {
        "code" : 121,
        "errmsg" : "Document failed validation"
    }
})


我理解错误背后的含义,但我不确定为什么我会收到它,因为我的插入似乎遵循了所有的约束,但很明显有些地方出了问题。谢谢你

在你的验证器中,
部门
是公司的一个字段,但不是在你插入的json中。@L.Sanna那么正确的json会是什么样子?@L.Sanna我更新了我的插入,我相信你会正确地插入json,但它仍然给出相同的错误