一、插入
MongoDB的插入操作很简单,使用insert方法,这里演示从创建数据库、创建集合到插入文档、查询文档。
集合创建方法参数说明:
size:集合最大空间
max:集合最多文档数量
(超出size和max限制都会删除最早的记录)
二、删除
MongoDB删除操作也很简单,使用remove方法,这里演示删除刚刚插入的文档。
remove函数如果没有传参数,直接调用则是删除集合中所有文档。
三、更新
为了方便下面的演示,我事先在刚刚创建的‘blog’集合中插入了4个文档:
1. 替换整个文档(这里演示替换第一个文档):
(这种情况下_id不变,若是要更新_id请注意防止键冲突)
2. 使用修改器更新文档指定部分:
(1)$inc:数字增加/减少
(若对应键不存在则会先创建键,若键对应值不是数字则会报错)
(2)$set:设置键值
(可以操作多种数据类型,可以改变键值的数据类型,还可以用于修改内嵌文档,若对应键不存在则会先创建键)
(3)$unset:删除某个键
(4)$push:若对应键已存在则会向已有数组末尾加入一个元素,否则会创建一个新的数组。
(5)$addToSet:如果一个值不在数组里面就把它加进去,使用方法和$push一样,只是不能添加重复的元素。
将$addToSet和$each组合起来,可以一次向数组中添加多个不同的值。
(6)$pop:从数组任何一端删除一个元素。
(貌似负数都是从头部删除,0和正数都从末尾删除)
(7)$pull:删除数组中所有符合条件的元素。
(8)使用数组下标选择需要修改的数组元素:
(9)使用定位符选择需要修改的数组元素:
修改器速度:
$inc不需要改变文档大小,所以速度非常快。
数组修改器可能更改了文档大小,速度比较慢。
$set在文档大小不发生变化时速度比较快,否则性能也会有所下降。
MongoDB预留了些补白给文档来适应大小变化,但要是超出了原来的空间,还是要分配一块新的空间。
要是$push成为瓶颈,可以将内嵌数组独立出来,放到单独一个集合里面。
(10)