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
posted @ 2021-09-06 10:06  hirak0  阅读(23)  评论(0编辑  收藏  举报