【发布时间】:2016-09-08 05:00:22
【问题描述】:
我为我的收藏编写了以下猫鼬模式。然而,猫鼬模式似乎并没有对插入到文档中的对象和项目的数据类型进行严格检查。例如:如果我改变了
“activity_performed”:真
到
"activity_performed":"adsfsadf"
mongodb 在插入数据时没有给出任何错误。我做错了什么,如何强制 mongoose 和 mongodb 在插入数据时进行严格的类型检查。
function initSchema() {
activitySchema = mongoose.Schema({
observationNumber : Number,
observation_data : [{
child_id : Number,
child_observation_data : [{
activity_performed: Boolean,
observation_date: String,
teacher_id: Number
}]
}]
});
}
function insertData() {
var activityModelObject = new ActivityModel();
activityModelObject.observationNumber = 1593570;
activityModelObject.observation_data = {"child_id" : 236, child_observation_data:{"activity_performed":"adsfsadf", "observation_date": "16May2016", "teacher_id":789}};
activityModelObject.save(function(err, savedObject) {
if(err) {
console.error("error in saving to mongodb", err);
return;
}
console.log("succesffully saveed the data: ", savedObject);
});
}
日志:
successfully saved the data: { observation_data:
[ { child_observation_data: [Object],
_id: 57d07545b839132412da0755,
child_id: 236 } ],
_id: 57d07545b839132412da0754,
observationNumber: 1593570,
__v: 0 }
这应该失败了!但由于某种原因,mongodb 报告它成功
【问题讨论】:
标签: node.js mongodb mongoose-schema