1、mongodb 批量插入是有限制的,最大不超过16M
2、插入doc的时候,会先转化为BSON,不能超过4M
3、数据库和集合都不需要自己建,会自动建。删除数据库用dropDatabase(),删除集合用drop(),删除文档用remo()
4、更新操作是原子操作,使用update来更新,有两种更新的方式,第一种是替换整个文档,先把需要的文档查出来,然后在更改,最后用更改后的文档替换掉原来的文档,这种通常用在文档结构发生很大变化的时候。如果文档中只是一部分数据变化,使用更新器。$set 用来设置一个doc中一个字段的值,如果没有这个字段添加,如果有更新,如果将一个key删除使用$unset来做。$inc 加法器用来给一个字段加上一个数字,所以必须是数字类型的才可以使用。
5、修改数组比较复杂,$push 用来向一个数组中增加一个元素,如果这个key不存在新增这个数组,$pop用来删除数组的头或者尾,$pull用来删除数据中的某个元素。修改数组某个下标位置的数据,可以用 list.0.xxx的形式。还可以使用$的方式来定位当前已经匹配的文档,如果多个文档都匹配,只有第一个文档的数据被更新
6、修改嵌套文档会用到.语法,这个时候需要将key用引号
7、update操作,如果没有通过条件没有找到对应的doc,就不会有更新,但是如果开启了upsert选项,就会按照筛选条件和更新条件来新建一个doc,如果存在则更新,并且这个过程都是原子操作。
8、更新多个文档,默认情况下,只会对匹配的第一个文档进行操作。如果想使得所有的文档都得到更新,要开启update的第4个参数为true
9、插入、更新、删除都是瞬间完成的,因为客户端发出请求后不会等待服务端完成后,这往往都是不安全的操作,即使服务端没有成功也不会收到报错消息,不能进行异常捕获。但是这些操作都有对应的安全版本
10、请求和连接,mongodb会为每个数据库连接创建一个队列,在同一个数据库连接中插入数据后总是可以查到的,但是在一个连接中插入数据,另外一个连接中去查询有可能查询不到数据,java等mongodb的驱动都是采用了连接池,这样就存在多个数据库的连接,好在他们提供了一种机制来保证一系列的请求都由一个连接来处理??不知道真的还是假的,还会存在这种并发的问题吗?
11、update(查询条件,更新操作,不存在则添加,更新全部文档)
12、find(查询条件,返回的key)
13、查询条件:$gt $lt $gte $lte $ne $in $or $nin ,$mod 取模运算
14、$not 是元条件句,可以用在任何条件句之上
15、null不仅可以匹配自身,也可以匹配不存在这个键的文档
16、$exists可以判断这个键是否存在
17、没有$eq操作符
18、还可以使用正则表达式来查询
19、数组查询,可以认为数组的每一个元素都是这个key的值,$all:[1,2] ,表示同时包含1和2的,顺序不限 ,$size数组的大小
20、$where 可以写一个js函数来做过滤,不到万不得已不要用,因为要吧BSON转化成JS对象,并且不能用索引,速度比较慢
mongodb
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 最后更新时间:2017-07-13 11:10:49 原始文章链接:http://www.lovebxm.com/...
- NoSql数据库优缺点 在优势方面主要体现在下面几点: 简单的扩展 快速的读写 低廉的成本 灵活的数据模型 在不足...