插入文件时也不例外

时间:2016-04-22 10:24:56

标签: mysql mongodb

我正在学习MongoDB。现在令我困惑的是收藏品不会像RDBMS那样强制实施严格的结构。我创建了一个包含以下参数的文档:

db.tempTable.insert({
    id: 1,
    name: umer
});
然后我插入了:

db.tempTable.insert({
    "id":2,
    "name": "khan",
    "yolo":"todolo"
});

两个查询都成功了。我认为Mongo会在第二次插入中引发异常,因为该集合没有" YOLO"集合中的列。

为什么?我们是否可以强制执行严格的结构以避免在插入表格时产生混淆?

最佳

2 个答案:

答案 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"
} )