插入语句
MongoDB的 插入语句之前也有过介绍了,这里我们只做一个简单的示例:
注意:
1、MongoDB第一次插入数据时,不需要事先创建集合collection,插入时自动创建;
2、每次插入时,不需要显示的指定_id,MongoDB默认创建该字段作为主键(当然,也可以自己指定),_id为ObjectId类型的值,由12个字节组成,分别是时间戳,精确到秒(4字节),机器唯一标识(3字节),进程ID(2字节),随机数(3)字节,如 58983d0fc55e261327343eab解释为58983d0f,为1970年到如今的时间差(秒),c55e26,为机器唯一标示符,1327为进程ID(十六进制),343eab,为随机数;
3、MongoDB中每一个collection中必须有一个_id字段,且必须值唯一。
修改语句
MongoDB的修改语句语法如下所示:
update表示需要修改的地方,如果只包含字段,而没有操作符,则会发生取代性修改,该字段一般尽量携带操作符,防止导致因修改一个字段而删除其他字段
upsert可选,默认false,true时表示如果没有匹配到记录,则插入
multi可选,默认false,默认只更新匹配到的第一个文档,true时表示更新所有匹配到的记录
示例:
更改多个文档,或找不到则插入(不可同时):
删除语句
MongoDB中的删除语句与RDB中的delete类似,只是名字叫remove,其语法如下:
query为可选参数,类似where
justOne是一个Boolean值,表示只删除匹配到的第一个文档(即记录)
注意:如果不指定任何参数,则将删除所有记录,但是索引数据不会被删除,如果需要删除记录以及索引,则需要单独去drop掉索引
示例如下:
可以看到删除后的结果,为空,
去看下索引:
索引则还存在。
锁机制
MongoDB的读写锁,基本与RDB类似,没有什么特殊的地方,需要注意的是,目前来讲,MongoDB的锁机制还是与RDB(关系型数据库)存在一定的差距的。