Как решить проблему проверки данных в Mongodb? - PullRequest
0 голосов
/ 31 октября 2019

Я создал следующую коллекцию 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"
    }
})

Я понимаю значение ошибки, но не уверен, почему я ее получаю, потому что моя вставка, похоже, соответствует всем установленным ограничениям, но явно что-то не так. Thankyou

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...