MongoDB 手册
MongoDB 手册
操作符
查询和计划操作符
MongoDB query-evaluation Method(评价查询操作符)
方法名 | 描述 |
---|---|
$mod | 取模计算 |
$regex | |
$text | |
$where |
$mod - 取模计算
此操作符用于取模运算。例如查询age取模10等于1的数据,如下面的代码所示:
db.student.find({age:{$mod:[10,1]}})
示例
接下来举一个实际的例子,c1表的数据如下面的代码所示:
>db.c1.find(){"_id":ObjectId("4fb4af85afa87dc1bed94330"),"age":7,"length_1":30}{"_id":ObjectId("4fb4af89afa87dc1bed94331"),"age":8,"length_1":30}{"_id":ObjectId("4fb4af8cafa87dc1bed94332"),"age":6,"length_1":30}
查询age取模6等于1的数据,如下面的代码所示:
>db.c1.find({age:{$mod:[6,1]}}){"_id":ObjectId("4fb4af85afa87dc1bed94330"),"age":7,"length_1":30}
MongoDB query-logical Method(逻辑查询操作符)
方法名 | 描述 |
---|---|
$and | |
$nor | |
$not | |
$or |
MongoDB query-comparison Method(比较查询操作符)
方法名 | 描述 |
---|---|
$gt | 大于 |
$lte | 小于等于 |
$in | 包含 |
$nin | 不包含 |
$lt | 小于 |
$gte | 大于等于 |
$ne | 不等于 |
$eq | 等于 |
$gt - 大于
用法
此操作符用于统计记录的中field的值大于value数据。用法如下面的代码所示:
db.collection.find({"field":{$gt:value}});
示例
接下来举一个实际的例子,c1表的数据如下面的代码所示:
>db.c1.find(){"_id":ObjectId("4fb4af85afa87dc1bed94330"),"age":7,"length_1":30}{"_id":ObjectId("4fb4af89afa87dc1bed94331"),"age":8,"length_1":30}{"_id":ObjectId("4fb4af8cafa87dc1bed94332"),"age":6,"length_1":30}
查询age的值不等于8的数据,如下面的代码所示:
>db.c1.find({age:{$gt:6}}){"_id":ObjectId("4fb4af85afa87dc1bed94330"),"age":7,"length_1":30}{"_id":ObjectId("4fb4af89afa87dc1bed94331"),"age":8,"length_1":30}
可以看出,只显示age大于6的数据,age等于6的数据没有显示出来。
$lte - 小于等于
用法
此操作符用于统计记录的中field的值小于等于value数据。用法如下面的代码所示:
db.collection.find({"field":{$lte:value}});
示例
接下来举一个实际的例子,c1表的数据如下面的代码所示:
>db.c1.find()
{"_id":ObjectId("4fb4af85afa87dc1bed94330"),"age":7,"length_1":30}
{"_id":ObjectId("4fb4af89afa87dc1bed94331"),"age":8,"length_1":30}
{"_id":ObjectId("4fb4af8cafa87dc1bed94332"),"age":6,"length_1":30}
查询age的值不等于8的数据,如下面的代码所示:
>db.c1.find({age:{$lte:7}}){"_id":ObjectId("4fb4af85afa87dc1bed94330"),"age":7,"length_1":30}{"_id":ObjectId("4fb4af8cafa87dc1bed94332"),"age":6,"length_1":30}
可以看出,只显示age小于等于7的数据,age等于8的数据没有显示出来。
$in - 包含
用法
此操作符与SQL标准语法的用途一样,即要查询的数据在一个特定的取值范围内。
例如,查询x的值在2、4、6范围内的数据,如下面的代码所示:
db.things.find({x:{$in:[2,4,6]}});
示例
接下来举一个实际的例子,c1表的数据如下面的代码所示:
>db.c1.find(){"_id":ObjectId("4fb4af85afa87dc1bed94330"),"age":7,"length_1":30}{"_id":ObjectId("4fb4af89afa87dc1bed94331"),"age":8,"length_1":30}{"_id":ObjectId("4fb4af8cafa87dc1bed94332"),"age":6,"length_1":30}
查询age的值在7、8范围内的数据,如下面的代码所示:
>db.c1.find({age:{$in:[7,8]}}){"_id":ObjectId("4fb4af85afa87dc1bed94330"),"age":7,"length_1":30}{"_id":ObjectId("4fb4af89afa87dc1bed94331"),"age":8,"length_1":30}
可以看出只显示age等于7或8的数据,其他不符合规则的数据并没有显示出来。
$nin - 不包含
用法
此操作符与SQL标准语法的用途是一样的,即要查询的数据在一系列枚举值的范围外。
查询x的值在2、4、6范围外的数据,如下面的代码所示:
db.things.find({x:{$nin:[2,4,6]}});
示例
接下来举一个实际的例子,c1表的数据如下面的代码所示:
>db.c1.find(){"_id":ObjectId("4fb4af85afa87dc1bed94330"),"age":7,"length_1":30}{"_id":ObjectId("4fb4af89afa87dc1bed94331"),"age":8,"length_1":30}{"_id":ObjectId("4fb4af8cafa87dc1bed94332"),"age":6,"length_1":30}
查询age的值在7、8范围外的数据,如下面的代码所示:
>db.c1.find({age:{$nin:[7,8]}}){"_id":ObjectId("4fb4af8cafa87dc1bed94332"),"age":6,"length_1":30}
通过结果可以看出只显示age不等于7或8的数据,其他不符合规则的数据并没有显示出来。
$lt - 小于
用法
此操作符用于统计记录的中field的值小于value数据。用法如下面的代码所示:
db.collection.find({"field":{$lt:value}});
示例
接下来举一个实际的例子,c1表的数据如下面的代码所示:
>db.c1.find(){"_id":ObjectId("4fb4af85afa87dc1bed94330"),"age":7,"length_1":30}{"_id":ObjectId("4fb4af89afa87dc1bed94331"),"age":8,"length_1":30}{"_id":ObjectId("4fb4af8cafa87dc1bed94332"),"age":6,"length_1":30}
查询age的值不等于8的数据,如下面的代码所示:
>db.c1.find({age:{$lt:8}}){"_id":ObjectId("4fb4af85afa87dc1bed94330"),"age":7,"length_1":30}{"_id":ObjectId("4fb4af8cafa87dc1bed94332"),"age":6,"length_1":30}
可以看出,只显示age小于等于8的数据,age等于8的数据没有显示出来。
$gte - 大于等于
用法
此操作符用于统计记录的中field的值大于等于value数据。用法如下面的代码所示:
db.collection.find({"field":{$gte:value}});
示例
接下来举一个实际的例子,c1表的数据如下面的代码所示:
>db.c1.find(){"_id":ObjectId("4fb4af85afa87dc1bed94330"),"age":7,"length_1":30}{"_id":ObjectId("4fb4af89afa87dc1bed94331"),"age":8,"length_1":30}{"_id":ObjectId("4fb4af8cafa87dc1bed94332"),"age":6,"length_1":30}
查询age的值不等于8的数据,如下面的代码所示:
>db.c1.find({age:{$gte:7}}){"_id":ObjectId("4fb4af85afa87dc1bed94330"),"age":7,"length_1":30}{"_id":ObjectId("4fb4af89afa87dc1bed94331"),"age":8,"length_1":30}
可以看出,只显示age大于等于7的数据,age等于6的数据没有显示出来。
$ne - 不等于
用法
此操作符用于布尔不等于的运算。例如查询x的值不等于3的数据,如下面的代码所示:
db.things.find({x:{$ne:3}});
示例
接下来举一个实际的例子,c1表的数据如下面的代码所示:
>db.c1.find(){"_id":ObjectId("4fb4af85afa87dc1bed94330"),"age":7,"length_1":30}{"_id":ObjectId("4fb4af89afa87dc1bed94331"),"age":8,"length_1":30}{"_id":ObjectId("4fb4af8cafa87dc1bed94332"),"age":6,"length_1":30}
查询age的值不等于7的数据,如下面的代码所示:
>db.c1.find({age:{$ne:7}}){"_id":ObjectId("4fb4af89afa87dc1bed94331"),"age":8,"length_1":30}{"_id":ObjectId("4fb4af8cafa87dc1bed94332"),"age":6,"length_1":30}
可以看出,只显示age不等于7的数据,age等于7的数据没有显示出来。
$eq - 等于
用法
此操作符用于统计记录的中field的值等于value数据。用法如下面的代码所示:
db.collection.find({"field":{$eq:value}});
示例
接下来举一个实际的例子,c1表的数据如下面的代码所示:
>db.c1.find(){"_id":ObjectId("4fb4af85afa87dc1bed94330"),"age":7,"length_1":30}{"_id":ObjectId("4fb4af89afa87dc1bed94331"),"age":8,"length_1":30}{"_id":ObjectId("4fb4af8cafa87dc1bed94332"),"age":6,"length_1":30}
查询age的值不等于8的数据,如下面的代码所示:
>db.c1.find({age:{$eq:7}}){"_id":ObjectId("4fb4af85afa87dc1bed94330"),"age":7,"length_1":30}
可以看出,只显示age等于7的数据,其他数据没出来。
MongoDB query-array Method(数组查询操作符)
方法名 | 描述 |
---|---|
$all | 匹配所有 |
$size | 匹配数组元素个数 |
$elemMatch |
$all - 匹配所有
此操作符跟SQL语法的in类似,不同的是in只需要匹配括号内的某一个值,而$all必须满足括号内的所有值,如下面的代码所示:
示例
db.users.find({age:{$all:[6,8]}});
上例可以查询出以下文档:
{name:'David',age:26,age:[6,8,9]}
但查询不出以下这条文档:
{name:'David',age:26,age:[6,7,9]}
$size - 匹配数组元素个数
此操作符用于统计数组中的元素个数。例如,对于记录:
{name:'David',age:26,favorite_number:[6,7,9]}
它匹配以下查询:
db.users.find({favorite_number:{$size:3}})
但不匹配以下查询:
db.users.find({favorite_number:{$size:2}})
MongoDB query-element Method(元查询操作符)
方法名 | 描述 |
---|---|
$type | 数据类型操作符 |
$exists | 判断字段是否存在 |
$type - 数据类型操作符
$type操作符是基于BSON类型来检索集合中匹配的数据类型,并返回结果。
用法
db.collection.find( { field: { $type: -1 } } )
参数
类型 | 数字 | 备注 |
---|---|---|
Double | 1 | |
String | 2 | |
Object | 3 | |
Array | 4 | |
Binary data | 5 | |
Undefined | 6 | 已废弃。 |
Object id | 7 | |
Boolean | 8 | |
Date | 9 | |
Null | 10 | |
Regular Expression | 11 | |
JavaScript | 13 | |
Symbol | 14 | |
JavaScript (with scope) | 15 | |
32-bit integer | 16 | |
Timestamp | 17 | |
64-bit integer | 18 | |
Min key | 255 | Query with -1 。 |
Max key | 127 |
示例
如果想获取 "col" 集合中 title 为 String 的数据,你可以使用以下命令:
>db.col.find({"title" : {$type : 2}})
$exists - 判断字段是否存在
用法
此操作符用于判断某个字段是否存在,例如查询所有存在age字段的记录,如下面的代码所示:
db.users.find({age:{$exists:true}});
查询所有不存在name字段的记录,如下面的代码所示:
db.users.find({name:{$exists:false}});
示例
接下来举一个实际的例子,c1表的数据如下面的代码所示:
>db.c1.find();{"_id":ObjectId("4fb4a773afa87dc1bed9432d"),"age":20,"length":30}{"_id":ObjectId("4fb4a7e1afa87dc1bed9432e"),"age_1":20,"length_1":30}
查询存在字段age的数据,如下面的代码所示:
>db.c1.find({age:{$exists:true}});{"_id":ObjectId("4fb4a773afa87dc1bed9432d"),"age":20,"length":30}
通过实验结果可以看出只显示了age字段的数据,age_1的数据并没有显示出来。
更新操作符
MongoDB update-field Method(字段更新操作符)
方法名 | 描述 |
---|---|
$mul | |
$max | |
$min | |
$set | 设置某一个字段的值。 |
$inc | 对一个数字字段的某个field增加value |
$rename | 字段的重命名 |
$unset | 删除字段。 |
$setOnInsert | |
$currentDate |
$set - 设置某一个字段的值。
设置某一个字段的值。
此操作符相当于SQL语法的"set field=value",全部数据类型都支持$set。
用法
{$set:{field:value}}
示例
例如,将wangwenlong的年龄调整为40岁。先展示当前年龄,如下面的代码所示:
>db.t3.find(){"_id":ObjectId("4fe676348414d282f712fae4"),"name":"wangwenlong","age":35}
可以看到当前年龄是35岁,接下来将age调整为40,如下面的代码所示:
>db.t3.update({name:"wangwenlong"},{$set:{age:40}})>db.t3.find(){"_id":ObjectId("4fe676348414d282f712fae4"),"name":"wangwenlong","age":40}>
可以看到,更新后年龄从30变成了40。
$inc - 对一个数字字段的某个field增加value
对一个数字字段的某个field增加value。
用法
{$inc:{field:value}}
示例
例如,将wangwenlong的年龄增加5岁。先展示当前年龄,如下面的代码所示:
>db.t3.find(){"_id":ObjectId("4fe676348414d282f712fae4"),"name":"wangwenlong","age":30}
可以看到当前年龄是30岁,接下来将"age"增加5,如下面的代码所示:
>db.t3.update({name:"wangwenlong"},{$inc:{age:5}})>db.t3.find(){"_id":ObjectId("4fe676348414d282f712fae4"),"name":"wangwenlong","age":35}>
通过结果看到,更新后年龄从30变成了35。
$rename - 字段的重命名
此操作符可以完成字段的重命名。
用法
{$rename:{old_field_name:new_field_name}}
示例
例如,先展示当前数据,如下面的代码所示:
>db.t3.find(){"_id":ObjectId("4fe686288414d282f712fae8"),"name":[],"userid":3}
要将name字段改名为"alias",如下面的代码所示:
>db.t3.update({"userid":3},{$rename:{"name":"alias"}})>db.t3.find(){"_id":ObjectId("4fe686288414d282f712fae8"),"alias":[],"userid":3}
可以看到name消失了,换成"alias",说明重命名字段成功了。
$unset - 删除字段。
删除字段。
这个更新同SQL语法中的删除表的列。
用法
{$unset:{field:1}}
示例
例如,将wangwenlong的年龄字段删除。展示当前数据,如下面的代码所示:
>db.t3.find(){"_id":ObjectId("4fe676348414d282f712fae4"),"name":"wangwenlong","age":40}
可以看到当前年龄是40岁,接下来将age字段删除,如下面的代码所示:
>db.t3.update({name:"wangwenlong"},{$unset:{age:1}})>db.t3.find(){"_id":ObjectId("4fe676348414d282f712fae4"),"name":"wangwenlong"}>
可以看到更新后年龄字段消失了。
MongoDB update-array Method(数组更新操作符)
方法名 | 描述 |
---|---|
$each | |
$sort | |
$position | |
$pull | 从数组field内删除一个等于value的值。 |
$push | 把value追加到field里。 |
\(pushAll | 用法同\)push一样,只是$pushAll一次可以追加多个值到一个数组字段内。 | |
$addToSet | 加一个值到数组内,而且只有当这个值不在数组内才增加。 |
\(pullAll | 用法同\)pull一样,可以一次删除数组内的多个值。 | |
$pop | 删除数组内的一个值。 |
$pull - 从数组field内删除一个等于value的值。
从数组field内删除一个等于value的值。
用法
{$pull:{field:_value}}
示例
例如,先展示当前数据,如下面的代码所示:
>db.t3.find(){"_id":ObjectId("4fe686288414d282f712fae8"),"userid":3,"name":["N1","N2","N3"]}
要将name中等于"N2"的值删除,如下面的代码所示:
>db.t3.update({"userid":3},{$pull:{"name":"N2"}})>db.t3.find(){"_id":ObjectId("4fe686288414d282f712fae8"),"name":["N1","N3"],"userid":3}
可以看到"N2"已经被删除了。
$push - 把value追加到field里。
把value追加到field里。field一定是数组类型,如果field不存在,会新增一个数组类型加进去。
用法
{$push:{field:value}}
示例
例如,将userid=3的数据的name字段里追加一个别名"Bruce"。先展示当前数据,如下面的代码所示:
>db.t3.find(){"_id":ObjectId("4fe67b008414d282f712fae6"),"userid":3,"name":["wangwenlong","wwl"]}
可以看到当前别名有2个,分别是"wangwenlong"和"wwl",接下来将Bruce的名字加入到name字段数据组里,如下面的代码所示:
>db.t3.update({"userid":3},{$push:{"name":"Bruce"}})>db.t3.find(){"_id":ObjectId("4fe67b008414d282f712fae6"),"name":["wangwenlong","wwl","Bruce"],"userid":3}
可以看到更新后当前别名里又多了一个"Bruce"。
\(pushAll - 用法同\)push一样,只是$pushAll一次可以追加多个值到一个数组字段内。
用法同\(push一样,只是\)pushAll一次可以追加多个值到一个数组字段内。
用法
{$pushAll:{field:value_array}}
示例
例如,将userid=3的数据的name字段里追加别名"N1"和"N2"。先展示当前数据,如下面的代码所示:
>db.t3.find(){"_id":ObjectId("4fe67b008414d282f712fae6"),"userid":3,"name":["wangwenlong"]}
可以看到当前别名有1个,是"wangwenlong",接下来将"N1"和"N2"名字加入到name字段数据组里,如下面的代码所示:
>db.t3.update({"userid":3},{$pushAll:{"name":["N1","N2"]}})>db.t3.find(){"_id":ObjectId("4fe67b008414d282f712fae6"),"name":["wangwenlong","N1","N2"],"userid":3}
可以看到更新后当前别名里又多了2个,分别是"N1"和"N2"。
$addToSet - 加一个值到数组内,而且只有当这个值不在数组内才增加。
加一个值到数组内,而且只有当这个值不在数组内才增加。
用法
{$addToSet:{field:value}}
示例
例如,将userid=3的记录的name字段里追加一个别名("N1"、"N2")。先展示当前数据,如下面的代码所示:
>db.t3.find(){"_id":ObjectId("4fe680228414d282f712fae7"),"userid":3,"name":["wangwenlong"]}
可以看到当前别名只有1个"wangwenlong",然后将("N1"、"N2")名字加入到name字段数据组里,并作为一个单独的对象,如下面的代码所示:
>db.t3.update({"userid":3},{$addToSet:{"name":["N1","N2"]}})>db.t3.find(){"_id":ObjectId("4fe680228414d282f712fae7"),"name":["wangwenlong",["N1","N2"]],"userid":3}
可以看到,更新后别名里又多了1个对象,这个对象里面包含2个数据,分别是"N1"和"N2"。
\(pullAll - 用法同\)pull一样,可以一次删除数组内的多个值。
用法同$pull一样,可以一次删除数组内的多个值。
用法
{$pullAll:{field:value_array}}
示例
例如,先展示当前数据,如下面的代码所示:
>db.t3.find(){"_id":ObjectId("4fe686288414d282f712fae8"),"name":["N1","N3"],"userid":3}
要将name中等于"N1"和"N3"的值删除,如下面的代码所示:
>db.t3.update({"userid":3},{$pullAll:{"name":["N1","N3"]}})>db.t3.find(){"_id":ObjectId("4fe686288414d282f712fae8"),"name":[],"userid":3}
可以看到"N1"和"N3"已经被删除了。
$pop - 删除数组内的一个值。
此操作符用于删除数组内的一个值。
用法
删除第一个值:
{$pop:{field:-1}}
删除最后一个值:
{$pop:{field:1}}
注意 此操作符只能删除一个值,也就是说只能用1或-1,而不能用2或-2来删除两条。
示例
例如,展示当前数据,如下面的代码所示:
>db.t3.find(){"_id":ObjectId("4fe680228414d282f712fae7"),"name":["N1","N2","N3"],"userid":3}
接下来删除第一个值,如下面的代码所示:
>db.t3.update({"userid":3},{$pop:{"name":-1}})>db.t3.find(){"_id":ObjectId("4fe680228414d282f712fae7"),"name":["N2","N3"],"userid":3}
第一个值"N1"已经被删除了,接下来删除最后一个值,如下面的代码所示:
>db.t3.update({"userid":3},{$pop:{"name":1}})>db.t3.find(){"_id":ObjectId("4fe680228414d282f712fae7"),"name":["N2"],"userid":3}
最后一个值"N3"已经被删除了。
聚合管道操作符
MongoDB aggregation-group Method(group查询操作符)
方法名 | 描述 |
---|---|
$sum | 计算总和 |
$stdDevPop | |
$avg | 计算平均值 |
$min | 获取集合中所有文档对应值得最小值。 |
$first | 根据资源文档的排序获取第一个文档数据。 |
$stdDevSamp | |
$push | 在结果文档中插入值到一个数组中。 |
$max | 获取集合中所有文档对应值得最大值。 |
$addToSet | 在结果文档中插入值到一个数组中,但不创建副本。 |
$last | 根据资源文档的排序获取最后一个文档数据 |
MongoDB aggregation-pipeline Method(管道聚合阶段)
方法名 | 描述 |
---|---|
$sort | 将输入文档排序后输出。 |
$limit | 用来限制MongoDB聚合管道返回的文档数。 |
$unwind | 将文档中的某一个数组类型字段拆分成多条,每条包含数组中的一个值。 |
$sample | |
\(match | 用于过滤数据,只输出符合条件的文档。\)match使用MongoDB的标准查询操作。 | |
$redact | |
$skip | 在聚合管道中跳过指定数量的文档,并返回余下的文档。 |
$group | 将集合中的文档分组,可用于统计结果。 |
$project | 修改输入文档的结构。可以用来重命名、增加或删除域,也可以用于创建计算结果以及嵌套文档。 |
$geoNear | 输出接近某一地理位置的有序文档。 |
shell方法
MongoDB Collection Method(集合方法)
方法名 | 描述 |
---|---|
db.collection.aggregate() | 聚合,主要用于处理数据(诸如统计平均值,求和等),并返回计算后的数据结果 |
db.collection.bulkWrite() | 批量写入 |
db.collection.createIndex() | 创建一个集合索引 |
db.collection.count() | 返回集合总数或匹配查询的结果集总数 |
db.collection.deleteOne() | 删除集合中的一个文档 |
db.collection.deleteMany() | 删除集合中的多个文档 |
db.collection.dataSize() | 返回集合的大小 |
db.collection.distinct() | 返回具有指定字段不同值的文档(去除指定字段的重复数据) |
db.collection.dropIndex() | 删除一个集合中的指定索引 |
db.collection.dropIndexes() | 删除一个集合中的所有索引 |
db.collection.drop() | 删除当前数据库中的collection集合 |
db.collection.explain() | 返回各种方法的查询执行信息 |
db.collection.ensureIndex() | 已过时,现使用db.collection.createIndex() |
db.collection.findOne() | 查询单条数据 |
db.collection.findOneAndReplace() | 查询单条数据并替换 |
db.collection.findOneAndDelete() | 查询单条数据并删除 |
db.collection.findOneAndUpdate() | 查询单条数据并更新 |
db.collection.find() | 查询集合,无参数则查询所有,并返回一个游标对象 |
db.collection.findAndModify() | 查询并修改 |
db.collection.getIndexes() | 返回当前集合的所有索引数组 |
db.collection.group() | 提供简单的数据聚合功能 |
db.collection.isCapped() | 判断集合是否为定容量 |
db.collection.insert() | 在当前集合插入一条或多条数据(或叫文档) |
db.collection.insertMany() | 在当前集合插入多条数据 |
db.collection.insertOne() | 在当前集合插入一条数据 |
db.collection.reIndex() | 重建当前集合的所有索引 |
db.collection.renameCollection() | 重命名集合名称 |
db.collection.replaceOne() | 替换集合中的一个文档(一条数据) |
db.collection.remove() | 从当前集合删除数据 |
db.collection.save() | 已插入数据更新 |
db.collection.stats() | 返回当前集合的状态 |
db.collection.storageSize() | 返回当前集合已使用的空间大小 |
db.collection.totalSize() | 返回当前集合的总占用空间,包括所有文件和所有索引 |
db.collection.totalIndexSize() | 返回当前集合所有的索引所占用的空间大小 |
db.collection.updateMany() | 修改集合中的多条数据 |
db.collection.update() | 修改集合中的数据 |
db.collection.updateOne() | 修改集合中的一条数据 |
db.collection.validate() | 执行对集合验证操作 |
MongoDB Database Method(数据库方法)
方法名 | 描述 |
---|---|
db.cloneDatabase() | 从指定主机上克隆数据库 |
db.currentOp() | 显示当前正在进行的操作 |
db.commandHelp() | 返回数据库命令的帮助信息 |
db.createCollection() | 创建一个聚集集合(table) |
db.cloneCollection() | 在MongoDB实例之间复制集合数据 |
db.copyDatabase() | 从指定的机器上复制指定数据库数据到某个数据库 |
db.dropDatabase(); | 删除当前使用数据库 |
db.fsyncLock() | 刷新写入磁盘并锁定该数据库,以防止写入操作,并协助备份操作 |
db.fsyncUnlock() | 允许继续进行写入锁住的数据库(解锁) |
db.getLogComponents() | 返回日志消息详细级别 |
db.getLastErrorObj() | 查看完整的错误结果 |
db.getMongo() | 查看当前db的链接机器地址 |
db.getCollection() | 得到指定名称的聚集集合(table) |
db.getName() | 查看当前使用的数据库 |
db.getPrevError() | 返回包含自上次错误复位所有的错误状态文件 |
db.getCollectionNames() | 得到当前db的所有聚集集合 |
db.getCollectionInfos() | 返回当前数据库中的所有集合信息 |
db.getLastError() | 返回上一次错误,如果没有错误则为空 |
db.hostInfo() | 返回当前数据库主机系统的相关信息 |
db.killOp() | 终止指定的操作 |
db.listCommands() | 显示公共数据库的命令列表 |
db.logout() | 注销登录 |
db.printCollectionStats() | 显示当前db所有聚集索引的状态 |
db.resetError() | 重置db.getPrevError()和getPrevError返回的错误信息 |
db.repairDatabase() | 修复当前数据库 |
db.repairDatabase() | 修复当前数据库 |
db.runCommand() | 运行一个数据库命令 |
db.serverStatus() | 返回当前数据库状态的概要 |
db.setProfilingLevel() | 修改当前数据库的分析级别 |
db.stats() | 显示当前db状态 |
db.shutdownServer() | 关闭当前数据库运行实例或安全停止有关操作进程 |
db.setLogLevel() | 设置一个单独的日志信息级别 |
db.version() | 查看当前db版本 |
MongoDB cursor Method(游标方法)
方法名 | 描述 |
---|---|
cursor.snapshot() | |
cursor.itcount() | |
cursor.batchSize() | |
cursor.pretty() | |
cursor.hint() | |
cursor.min() | |
cursor.sort() | |
cursor.forEach() | |
cursor.limit() | |
cursor.returnKey() | |
cursor.comment() | |
cursor.next() | |
cursor.hasNext() | |
cursor.readConcern() | |
cursor.skip() | |
cursor.readPref() | |
cursor.tailable() | |
cursor.explain() | |
cursor.maxTimeMS() | |
cursor.max() | |
cursor.size() | |
cursor.close() | |
cursor.toArray() | |
cursor.showRecordId() | |
cursor.map() | |
cursor.count() | |
cursor.noCursorTimeout() | |
cursor.maxScan() | |
cursor.objsLeftInBatch() |
MongoDB method-replication Method( 副本集方法)
方法名 | 描述 |
---|---|
rs.initiate() | |
rs.addArb() | |
rs.help() | |
rs.printReplicationInfo() | 查看到副本集操作日志 |
rs.remove() | 减少副本集节点 |
rs.freeze() | “冻结”mongodb实例 |
rs.status() | 查看副本集状态 |
db.printSlaveReplicationInfo | 查看复制集的同步状态 |
rs.add() | 增加副本集节点 |
rs.stepDown() | 将当前主库“降级” |
rs.slaveOk() | |
rs.conf() | |
rs.syncFrom() | |
rs.reconfig() |
MongoDB User Management Methods Method(用户管理方法)
方法名 | 描述 |
---|---|
db.getUsers() | |
db.dropAllUsers() | |
db.updateUser() | |
db.createUser() | |
db.revokeRolesFromUser() | |
db.removeUser() | 删除用户 |
db.grantRolesToUser() | |
db.getUser() | |
db.changeUserPassword() | |
db.auth() | 数据库认证、安全模式 |
MongoDB connection-method Method(连接方法)
方法名 | 描述 |
---|---|
Mongo.setSlaveOk() | 设置从库可以进行数据查询操作 |
Mongo.setReadPref() | |
Mongo.getReadPrefTagSet() | |
Mongo.getReadPrefMode() | |
Mongo.getDB() |
MongoDB 手册-数据库命令
MongoDB sharding Method(分片命令)
方法名 | 描述 |
---|---|
shardCollection | 对某个集合开启分片. |
movePrimary | 在将某个分片从集群中删除时,重新设置 primary shard . |
removeShard | 开始删除一个分片的过程. |
enableSharding | 对某个数据库开启分片 |
listShards | 返回配置服务器中的分片列表 |
moveChunk | 在分片间迁移数据块的内部命令. |
addShard | 在 sharded cluster 中增加一个 shard. |
getShardVersion | 返回 配置服务器 版本的内部命令. |
splitVector | 决定分裂点的内部命令. |
setShardVersion | 设置 配置服务器 上数据块版本的内部命令. |
shardingState | 报告一个 mongod 是不是集群中的一个分片. |
mergeChunks | 可以合并在一个分片上的数据块. |
checkShardingIndex | 验证片键上索引有效性的内部命令. |
flushRouterConfig | 强制更新一个 mongos 缓存的集群元信息. |
unsetSharding | 在MongoDB部署中影响实例间连接的内部命令. |
split | 创建一个新的 chunk. |
isdbgrid | Verifies that a process is a mongos. |
splitChunk | 分裂数据块的内部命令,使用 sh.splitFind() 和 sh.splitAt() 进行替代. |
cleanupOrphaned | 移除不属于某个分片却存储在这个分片的数据. |
medianKey | 废弃非内部命令,参见 splitVector. |
getShardMap | 报告集群状态的内部命令. |
MongoDB aggregation Method(聚合命令)
方法名 | 描述 |
---|---|
group | |
mapReduce | |
aggregate | |
count | 查询记录条数 |
distinct |
MongoDB crud Method(查询和写入操作命令)
方法名 | 描述 |
---|---|
eval | |
parallelCollectionScan | |
insert | |
update | 更新命令 |
resetError | |
find | |
delete | |
getLastError | |
getLastError | |
getMore | |
findAndModify |
MongoDB replication Method(复制命令)
方法名 | 描述 |
---|---|
replSetStepDown | |
replSetGetStatus | |
isMaster | |
replSetFreeze | |
replSetReconfig | |
replSetInitiate | |
replSetMaintenance | |
applyOps | |
replSetSyncFrom | |
resync | |
replSetGetConfig |
MongoDB role-management Method(角色管理命令)
方法名 | 描述 |
---|---|
createRole | |
dropAllRolesFromDatabase | |
grantPrivilegesToRole | |
rolesInfo | |
revokePrivilegesFromRole | |
invalidateUserCache | |
dropRole | |
revokeRolesFromRole | |
updateRole | |
grantRolesToRole |
MongoDB user-management Method(用户管理命令)
方法名 | 描述 |
---|---|
updateUser | |
usersInfo | |
grantRolesToUser | |
revokeRolesFromUser | |
dropUser | |
createUser | 创建一个数据库新用户 |
dropAllUsersFromDatabase |