前面的博文把MongoDB的一些基础介绍,以及MongoDB的一些组件的使用等博文,从该篇开始,开始学习MongoDB的操作内容。首先我们需要了解一些内容
写入关注(writeConcern)
在前面的博文中,介绍了MongoDB shell现有的所有方法,我们经常看到有的方法可以传入一个参数:writeConcern(写入关注),所以在说明MongoDB增加数据操作之前,我们需要先了解一下MongoDB的写入关注概念:
写入关注指的是MongoDB连接报告写入操作成功时的写入保障等级,写入关注程度越强,保障等级越高。
其概念是,写入关注程度较高时,MongoDB必须等到数据完全写入磁盘后才做出响应,当写入程度较低时,MongoDB会在成功调用写入的修改后就会做出响应。从这一句话我们可以分析出其优缺点:当写入关注程度高时,MongoDB必须等待一段时间才能响应,因此此类的关注等级适合那些数据非常重要,必须保证数据的正确性的数据,该类数据可以承受数据的时效慢的问题,比如关于金钱的修改操作等。而写入关注程度较低时,则是不关注写入操纵是否成功,直接返回结果,此类写入关注适合哪些要求时效性高,数据不太重要的操作,比如日志记录等等。
下面是MongoDB的写入关注等级表
等级 | 描述 |
---|---|
-1 | 忽略网络错误 |
0 | 不要求进行写入确认 |
1 | 要求进行写入确认 |
2 | 要求以写入到副本集的主服务器和一个备用服务器 |
majority | 要求已写入到副本集中的大多数服务器中 |
从上面可以看出,写入关注等级越高,其数据的安全性就越高,当然需要的时间也越长,对于操作的写入关注如何取舍,这要