我正在学习MongoDB。现在令我困惑的是收藏品不会像RDBMS那样强制实施严格的结构。我创建了一个包含以下参数的文档:
db.tempTable.insert({
id: 1,
name: umer
});
然后我插入了:
db.tempTable.insert({
"id":2,
"name": "khan",
"yolo":"todolo"
});
两个查询都成功了。我认为Mongo会在第二次插入中引发异常,因为该集合没有" YOLO"集合中的列。
为什么?我们是否可以强制执行严格的结构以避免在插入表格时产生混淆?
最佳
答案 0 :(得分:0)
否,MongoDB is schemaless。这意味着没有严格的架构。提升异常以确保所有文档具有相同字段的唯一方法是在代码级别,可能使用ORM
答案 1 :(得分:0)
就像@hd所说,mongodb是无模式的。但是有类似validators的解决方案允许您在插入之前验证数据。
新验证者的@example
db.runCommand( {
collMod: "contacts",
validator: { $or: [ { phone: { $exists: true } }, { email: { $exists: true } } ] },
validationLevel: "moderate"
} )