MongoDB的常见问答—MongoDB的基本原理

来源:互联网 发布:淘宝规定卖家发货时间 编辑:程序博客网 时间:2024/05/29 20:00

一、MongoDB支持什么平台?
在MongoDB3.2中改变的,WiredTiger存储引擎可以工作在所有支持的平台上。需要注意的是,MMAPv1存储引擎不支持大端(big-endian )架构。
具体参考https://docs.mongodb.com/manual/administration/production-notes/#prod-notes-supported-platforms

二、MongoDB是否提供了托管服务?
是的。 MongoDB Atlas是一款云托管的数据库服务.

三、如何区分集合和表?

取代表,一个MongoDB将数据存储在集合中. 一个集合保存一个或多个BSON文档。文档与关系型数据库中的记录或者行类似。每一个文档有一个或多个字段,字段与关系型数据库表中的列类似。

四、如何创建一个数据库和一个集合?

如果数据库不存在,当你向该数据库中存储数据时,MongoDB会自动创建该数据库。
如果集合不存在,当你向该集合中存储数据时,MongoDB会自动创建该集合。
同样的,你可以切换到一个不存在的数据库(use ) 来实现以下的操作:
use myNewDB
db.myNewCollection1.insertOne( { x: 1 } )
db.myNewCollection2.createIndex( { a: 1 } )
如果myNewDB数据库和myNewCollection1集合不存在的话,该插入操作会创建他们。
创建myNewDB数据库之后的创建索引操作,如果myNewCollection2集合不存在会自动创建它。如果myNewDb数据库不存在,创建索引的操作也会创建数据库。

五、如何定义和更改集合的模式?
你无需指定MongoDB中集合的模式。即使集合中的文档有一个大体相同的结构是非常普遍的。也就是说,在一个单独集合中的文档不需要有相同字段集。一个集合中相同字段数据类型也可以不一样。
我们可以改变集合中文档的结构,更新文档为新的结构,添加新字段,移除存在的字段或者更新字段的值为新的类型。
在3.2版本中改变的:从MongoDB 3.2开始,然而,在更新和插入操作期间,可以对集合执行文档验证规则。
一些集合的属性,例如指定一个最大值,可以在创建集合时指定和修改。

六、MongoDB是否支持SQL?

不支持。然而,MongoDB支持一套它自己的丰富的查询语言For

七、MongoDB是否支持事务?

MongoDB不支持多文档的事务,然而,MongoDB的确提供了单个文档上的原子操作。

八、MongoDB是否处理缓存?

是的。MongoDB保留最近使用的数据在RAM中. 如果你已经为你的查询创建了索引,并且你的工作数据集适合存放在RAM中,MongoDB从内存中提供所有查询。

九、MongoDB如果处理SQL或查询注入?

所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。
BSON
由于客户端程序在MongoDB中组装查询,它会建立一个BSON对象,而不是一个字符串。因此传统的SQL注入攻击在MongoDB中不是问题。

MongoDB将查询表示为BSON对象。通常客户端库会提供一个方便 、无注入的创建这些对象。

原创粉丝点击