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

一、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对象。通常客户端库会提供一个方便 、无注入的创建这些对象。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值