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