插入
db.collection.insert()
存储在 MongoDB 集合中的每个文档(document)都有一个默认的主键 _id,这个主键名称是固定的,它可以是 MongoDB 支持的任何数据类型,默认是 ObjectId
查询
db.collection.find()
数组查询
名称 | 描述 |
---|---|
$all | 通过多个元素来匹配数组。 |
$size | 查询特定长度的数组。 |
$slice | 返回数组的一个子集合。 |
举例
db.food.find()
数据:
1 | { "_id" : "001", "fruits" : [ "苹果", "香蕉", "橘子" ] } |
$all
查询水果列表中既有苹果又有桃子的食品:db.food.find({"fruits":{"$all":["苹果","桃子"]}}) --这是AND的关系
结果:
1 | { "_id" : "002", "fruits" : [ "苹果", "梨子", "橘子", "桃子" ] } |
查询水果列表中下标为1的元素是梨子的食品:db.food.find({"fruits.1":"梨子"})
结果:
1 | { "_id" : "002", "fruits" : [ "苹果", "梨子", "橘子", "桃子" ] } |
$size
数组包含3个元素的文档:db.food.find({"fruits":{"$size":3}})
结果:
1 | { "_id" : "001", "fruits" : [ "苹果", "香蕉", "橘子" ] } |
$slice
返回lists后3个元素:db.test.find({},{"lists":{"$slice":-3}})
结果:
1 | { "_id" : "001", "fruits" : [ "苹果", "香蕉", "橘子" ] } |
修改
语法
db.collection.update(<query>, <update>, upsert:<boolean>, multi:<boolean>)
参数 | 类型 | 描述 |
---|---|---|
query | document | 要修改哪些的查询条件,类似于SQL 的 where |
update | document | 要修改的字段对应的值 |
upsert | boolean | 可选的,默认值是false。如果根据查询条件没找到对应的文档,如果设置为true,相当于执行insert,如果设置为false,不做任何的操作。 |
multi | boolean | 可选的,默认值是false。如果根据查询条件找到对应的多条记录是,如果设置为false时,只修改第一条,如果设置为true,全部更新。 |
对单个字段进行修改
名称 | 描述 |
---|---|
$inc | 根据要添加的值递增该字段的值。 |
$mul | 将该字段的值乘以指定的值 |
$rename | 重命名字段 |
$setOnInsert | 操作时,操作给相应的字段赋值 |
$set | 用来指定一个键的值,如果不存在则创建它 |
$unset | 用来指定一个键的值,如果不存在不创建创建它 |
$min | 只有当指定的值小于现有字段值时才更新该字段。 |
$max | 只有当指定的值大于现有字段值时才更新该字段。 |
$currentDate | 设置当前日期字段的值,或者作为一个日期或时间戳。 |
对数组进行修改
名称 | 描述 |
---|---|
$ | 作为一个占位符的更新与查询条件在一个更新的第一要素 |
$addToSet | 将元素添加到数组中,仅当它们在集合中不存在 |
$pop | 删除数组的第一个或最后一个项 |
$pullAll | 从数组中移除所有匹配值 |
$pull | 移除匹配指定查询的所有数组元素 |
$pushAll | 将所有值添加到数组中(Deprecated since version 2.4: Use the $push operator with $each instead.) |
$push | 将值添加到数组中,如果有的数组存在则向数组末尾添加该值,如果数组不存在则创建该数组并保存该值 |
删除
删除文档
db.collection.remove()
删除 orders 集合的数据,集合还存在,索引都还存在
删除集合
db.collection.drop()
集合、索引都不存在了