我创建了以下集合(创建成功)
db.createCollection("Company", { "validator": { "$jsonSchema": {
"bsonType":"object",
"required":["city_name","city","street_name","building_number","budget","Department"],
"properties":{ "city_name":{ "bsonType":"string",
"description":"name of city" },
"city":{ "bsonType":"string",
"description":"City" },
"street_name":{ "bsonType":"string",
"description" :"name of street" },
"building_number":{"bsonType":"int",
"description":"number of building", minimum: 0, maximum: 500},
"budget":{"bsonType":"double",
"description":"budget of company",minimum: 0 },
"Department":{ "bsonType":"object",
"required":["Department_name","floor_number","Employee"],
"properties":{ "Department_name":{"bsonType":"string",
"description": "name of department" },
"floor_number":{"bsonType":"int",
"description":"number of floor" },
}},
"Employee":{ "bsonType":"object",
"required":["first_name","last_name","DOB","Salary"],
"properties":{"first_name":{"bsonType":"string",
"description":"Employees first name"},
"last_name":{"bsonType":"string",
"description":"Employees last name"},
"DOB":{"bsonType":"date",
"description":"Date of birth of empployee"},
"Salary":{"bsonType":"double",
"description":"Salary of Employee",minimum: 0},
"Position":{"bsonType":"string",
"description":"Position of employee. Field is not required"}}}}}}});
我创建了一组数据插入到这个集合中来测试验证
db.Company.insert(
{ "city_name":"Sydney",
"city":"Sydney",
"street_name":"Pitt Street",
"building_number":100,
"budget": 100000.0,
"Department":{"department_name":"Google",
"floor_number":4,
"Employee" :{"first_name" : "George",
"last_name": "Martin",
"DOB": new Date('Dec 26,1981'),
"Salary" : "70000",
"Position": "CEO"}}
});
但是,当我运行此脚本时,出现错误
WriteResult({
"nInserted" : 0,
"writeError" : {
"code" : 121,
"errmsg" : "Document failed validation"
}
})
可悲的是,Mongodb 在导致此类错误的原因方面并不是很具体,而且我已经检查了我的语法和声明,但我自己却无法发现任何错误,但显然存在!
为什么我在运行我的代码时收到这个错误?谢谢
试试这个:
01)架构:
db.createCollection(
"Company",
{
"validator": {
"$jsonSchema": {
"bsonType":"object",
"required":["city_name","city","street_name","building_number","budget","Department"],
"properties": {
"city_name":{ "bsonType" : "string", "description" : "name of city" },
"city":{ "bsonType" : "string", "description" : "City" },
"street_name":{ "bsonType" : "string","description" : "name of street" },
"building_number": { "bsonType" : "int", "description" : "number of building", minimum: 0, maximum: 500},
"budget": { "bsonType" : "double", "description" : "budget of company",minimum: 0 },
"Department": {
"bsonType":"object",
"required":["Department_name","floor_number","Employee"],
"properties": {
"Department_name":{"bsonType":"string", "description": "name of department" },
"floor_number":{"bsonType":"int", "description":"number of floor" },
"Employee":{
"bsonType":"object",
"required":["first_name","last_name","DOB","Salary"],
"properties":{
"first_name":{"bsonType":"string", "description":"Employees first name"},
"last_name":{"bsonType":"string", "description":"Employees last name"},
"DOB":{"bsonType":"date", "description":"Date of birth of empployee"},
"Salary":{"bsonType":"double", "description":"Salary of Employee",minimum: 0},
"Position":{"bsonType":"string", "description":"Position of employee. Field is not required"}
}
}
}
},
}
}
}
}
);
02)插入:
db.Company.insert(
{
"city_name": "Sydney",
"city": "Sydney",
"street_name": "Pitt Street",
"building_number": NumberInt(100),
"budget": 100000.0,
"Department":{
"Department_name":"Google",
"floor_number": NumberInt(4),
"Employee" : {
"first_name" : "George",
"last_name": "Martin",
"DOB": new Date('Dec 26,1981'),
"Salary" : 70000.0,
"Position": "CEO"
}
},
});
我必须做一些改变:
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句