一、连接与基础入门
1.1 连接MongoDB Shell
操作 | 命令 | 说明 |
|---|
本地连接 | mongosh 或 mongo
| 默认连接到 mongodb://127.0.0.1:27017 |
指定主机和端口 | mongosh --host <host> --port <port>
| 连接远程MongoDB服务器 |
带认证连接 | mongosh -u <username> -p <password> --authenticationDatabase admin
| 使用用户名密码认证连接 |
MongoDB Atlas连接 | mongosh "mongodb+srv://cluster-name.abcde.mongodb.net/" --username <username>
| 连接MongoDB Atlas云服务 |
查看当前数据库 | db
| 打印当前使用的数据库名称 |
查看所有数据库 | show dbs 或 show databases
| 列出所有有权限查看的数据库 |
切换数据库 | use <database>
| 切换到指定数据库,不存在则自动创建 |
查看所有集合 | show collections 或 show tables
| 列出当前数据库中的所有集合 |
运行JavaScript文件 | load("myScript.js")
| 加载并执行外部JavaScript文件 |
退出Shell | exit 或 quit
| 退出MongoDB Shell |
1.2 帮助与信息命令
操作 | 命令 | 说明 |
|---|
查看帮助 | help
| 显示Shell级别的帮助信息 |
数据库方法帮助 | db.help()
| 显示数据库对象的所有可用方法 |
集合方法帮助 | db.collection.help()
| 显示集合对象的所有可用方法 |
查看MongoDB版本 | db.version()
| 返回当前MongoDB服务器版本 |
查看主机信息 | db.hostInfo()
| 返回服务器主机信息 |
查看服务器状态 | db.serverStatus()
| 返回服务器运行状态统计 |
二、数据库管理命令
操作 | 命令 | 说明 |
|---|
创建/切换数据库 | use <database>
| MongoDB中数据库在首次插入数据时才会真正创建 |
查看当前数据库 | db
| 返回当前使用的数据库名称 |
查看所有数据库 | show dbs
| 列出所有数据库及其大小 |
查看数据库统计 | db.stats()
| 返回当前数据库的统计信息(集合数、索引数、数据大小等) |
删除当前数据库 | db.dropDatabase()
| 删除当前使用的数据库,谨慎操作 |
修复数据库 | db.repairDatabase()
| 修复并压缩数据库,回收磁盘空间 |
克隆数据库 | db.cloneDatabase("<hostname>")
| 从远程服务器复制整个数据库 |
复制数据库 | db.copyDatabase("<from_db>", "<to_db>")
| 将源数据库复制到目标数据库 |
保留数据库说明:
admin:权限根数据库,存储用户认证和角色信息
local:存储本地单服务器数据,永远不会被复制
config:用于分片设置时保存分片相关信息
三、集合(Collection)管理命令
操作 | 命令 | 说明 |
|---|
显式创建集合 | db.createCollection("<name>")
| 手动创建集合 |
隐式创建集合 | 直接向不存在的集合插入文档 | 推荐方式,集合会自动创建 |
查看所有集合 | show collections
| 列出当前数据库中的所有集合 |
重命名集合 | db.<collection>.renameCollection("<new_name>")
| 重命名集合 |
查看集合统计 | db.<collection>.stats()
| 返回集合的详细统计信息 |
查看集合大小 | db.<collection>.dataSize()
| 返回集合数据占用的字节数 |
查看集合总大小 | db.<collection>.totalSize()
| 返回集合数据+索引的总大小 |
查看集合存储大小 | db.<collection>.storageSize()
| 返回集合分配的存储空间大小 |
删除集合 | db.<collection>.drop()
| 删除集合,返回true表示成功 |
验证集合 | db.<collection>.validate()
| 验证集合数据完整性 |
四、文档CRUD操作
4.1 插入文档(Create)
操作 | 命令 | 说明 |
|---|
插入单文档 | db.<collection>.insertOne({…})
| 插入一条文档,返回包含_id的结果 |
插入多文档 | db.<collection>.insertMany([{…}, {…}])
| 批量插入多条文档 |
通用插入 | db.<collection>.insert({…})
| 可插入单条或多条文档 |
无序批量插入 | db.<collection>.insertMany([…], {ordered: false})
| 某条失败继续插入其余文档 |
带写入关注 | db.<collection>.insert({…}, {writeConcern: {w: "majority", wtimeout: 5000}})
| 指定写入确认级别 |
插入示例:
// 插入单条文档
db.users.insertOne({
name: "张三",
age: 25,
email: "zhangsan@example.com",
tags: ["developer", "mongodb"],
create_time: new Date()
})
// 批量插入
db.users.insertMany([
{name: "李四", age: 30, email: "lisi@example.com"},
{name: "王五", age: 28, email: "wangwu@example.com"}
])
注意:若未指定_id字段,MongoDB会自动生成ObjectId类型的主键。整型需用NumberInt()声明,否则默认为double类型。
4.2 查询文档(Read)
操作 | 命令 | 说明 |
|---|
查询所有文档 | db.<collection>.find()
| 返回所有文档(返回20条,输入it显示更多) |
格式化输出 | db.<collection>.find().pretty()
| 美化JSON格式输出 |
查询单文档 | db.<collection>.findOne({…})
| 返回第一个匹配的文档 |
条件查询 | db.<collection>.find({field: value})
| 按字段值查询 |
投影查询 | db.<collection>.find({}, {field1: 1, field2: 0})
| 1表示显示,0表示隐藏
|
排序查询 | db.<collection>.find().sort({field: 1/-1})
| 1升序,-1降序
|
限制数量 | db.<collection>.find().limit(n)
| 返回前n条文档 |
跳过文档 | db.<collection>.find().skip(n)
| 跳过前n条文档 |
分页查询 | db.<collection>.find().limit(n).skip(m)
| 每页n条,跳过m条 |
统计数量 | db.<collection>.countDocuments({…})
| 精确计数 |
估算数量 | db.<collection>.estimatedDocumentCount()
| 基于元数据快速估算 |
去重查询 | db.<collection>.distinct("field")
| 返回字段的去重值数组 |
查看执行计划 | db.<collection>.find({…}).explain("executionStats")
| 分析查询性能 |
4.3 比较运算符
运算符 | 说明 | 示例 |
|---|
$eq
| 等于 | {age: {$eq: 25}}
|
$ne
| 不等于 | {age: {$ne: 25}}
|
$gt
| 大于 | {age: {$gt: 25}}
|
$gte
| 大于等于 | {age: {$gte: 25}}
|
$lt
| 小于 | {age: {$lt: 25}}
|
$lte
| 小于等于 | {age: {$lte: 25}}
|
$in
| 在列表中 | {tags: {$in: ["mongodb", "database"]}}
|
$nin
| 不在列表中 | {tags: {$nin: ["mysql"]}}
|
4.4 逻辑运算符
运算符 | 说明 | 示例 |
|---|
$and
| 逻辑与 | {$and: [{age: {$gt: 20}}, {age: {$lt: 30}}]}
|
$or
| 逻辑或 | {$or: [{name: "张三"}, {age: 25}]}
|
$nor
| 逻辑或非 | {$nor: [{price: 1.99}, {sale: true}]}
|
$not
| 逻辑非 | {age: {$not: {$gt: 25}}}
|
4.5 元素运算符
运算符 | 说明 | 示例 |
|---|
$exists
| 字段是否存在 | {email: {$exists: true}}
|
$type
| 按字段类型查询 | {age: {$type: "int"}} 或 {age: {$type: 16}}
|
4.6 数组运算符
运算符 | 说明 | 示例 |
|---|
$all
| 包含所有指定元素 | {tags: {$all: ["mongodb", "database"]}}
|
$elemMatch
| 至少一个元素匹配所有条件 | {scores: {$elemMatch: {$gte: 80, $lt: 90}}}
|
$size
| 数组长度匹配 | {tags: {$size: 3}}
|
4.7 更新文档(Update)
操作 | 命令 | 说明 |
|---|
更新单文档 | db.<collection>.updateOne({filter}, {$set: {field: value}})
| 更新匹配的第一条文档 |
更新多文档 | db.<collection>.updateMany({filter}, {$set: {field: value}})
| 更新所有匹配的文档 |
替换文档 | db.<collection>.replaceOne({filter}, {new_doc})
| 用新文档完全替换旧文档 |
通用更新 | db.<collection>.update({filter}, {update}, {upsert: true})
| 支持更多选项 |
更新并返回 | db.<collection>.findOneAndUpdate({filter}, {update}, {returnNewDocument: true})
| 返回更新后的文档 |
更新操作符:
操作符 | 说明 | 示例 |
|---|
$set
| 设置字段值 | {$set: {age: 26}}
|
$unset
| 删除字段 | {$unset: {temp_field: ""}}
|
$inc
| 数值递增/递减 | {$inc: {count: 1, score: -5}}
|
$mul
| 数值乘法 | {$mul: {price: 1.1}}
|
$rename
| 重命名字段 | {$rename: {"old_name": "new_name"}}
|
$min
| 比较后取最小值更新 | {$min: {lowScore: 50}}
|
$max
| 比较后取最大值更新 | {$max: {highScore: 95}}
|
$currentDate
| 设置当前日期 | {$currentDate: {lastModified: true}}
|
数组更新操作符:
操作符 | 说明 | 示例 |
|---|
$push
| 向数组添加元素 | {$push: {tags: "new_tag"}}
|
$addToSet
| 去重后添加 | {$addToSet: {tags: "unique_tag"}}
|
$pop
| 移除首/尾元素 | {$pop: {tags: 1}}(1尾,-1首)
|
$pull
| 移除匹配元素 | {$pull: {tags: "old_tag"}}
|
$pullAll
| 移除多个元素 | {$pullAll: {tags: ["a", "b"]}}
|
$each
| 批量操作数组 | {$push: {tags: {$each: ["a", "b"]}}}
|
4.8 删除文档(Delete)
操作 | 命令 | 说明 |
|---|
删除单文档 | db.<collection>.deleteOne({filter})
| 删除匹配的第一条文档 |
删除多文档 | db.<collection>.deleteMany({filter})
| 删除所有匹配的文档 |
删除并返回 | db.<collection>.findOneAndDelete({filter})
| 删除并返回被删除的文档 |
删除所有文档 | db.<collection>.deleteMany({})
| 删除集合中所有文档(不删除集合) |
通用删除 | db.<collection>.remove({filter}, {justOne: true})
| 传统删除方法 |
五、索引管理命令
5.1 索引操作
操作 | 命令 | 说明 |
|---|
创建单字段索引 | db.<collection>.createIndex({field: 1})
| 1升序,-1降序
|
创建复合索引 | db.<collection>.createIndex({field1: 1, field2: -1})
| 多字段组合索引 |
创建唯一索引 | db.<collection>.createIndex({field: 1}, {unique: true})
| 确保字段值唯一 |
创建文本索引 | db.<collection>.createIndex({field: "text"})
| 支持全文搜索 |
创建地理空间索引 | db.<collection>.createIndex({location: "2dsphere"})
| 支持地理位置查询 |
创建哈希索引 | db.<collection>.createIndex({field: "hashed"})
| 用于分片 |
创建TTL索引 | db.<collection>.createIndex({date: 1}, {expireAfterSeconds: 3600})
| 文档自动过期 |
创建部分索引 | db.<collection>.createIndex({field: 1}, {partialFilterExpression: {field: {$gt: 0}}})
| 只索引符合条件的文档 |
查看所有索引 | db.<collection>.getIndexes()
| 列出集合的所有索引 |
查看索引大小 | db.<collection>.totalIndexSize()
| 返回所有索引的总大小 |
删除指定索引 | db.<collection>.dropIndex("index_name")
| 按名称删除索引 |
删除所有索引 | db.<collection>.dropIndexes()
| 删除除_id外的所有索引 |
隐藏索引 | db.<collection>.hideIndex("index_name")
| 隐藏索引(4.4+),测试后决定是否删除 |
显示索引 | db.<collection>.unhideIndex("index_name")
| 取消隐藏索引 |
重建索引 | db.<collection>.reIndex()
| 重建集合上的所有索引 |
5.2 索引类型速查
索引类型 | 命令示例 | 适用场景 |
|---|
单字段索引 | db.users.createIndex({age: 1})
| 单字段查询 |
复合索引 | db.users.createIndex({age: 1, name: -1})
| 多字段组合查询 |
多键索引 | 自动创建 | 数组字段索引 |
文本索引 | db.articles.createIndex({content: "text"})
| 全文搜索 |
地理空间索引 | db.places.createIndex({loc: "2dsphere"})
| 地理位置查询 |
哈希索引 | db.users.createIndex({user_id: "hashed"})
| 分片键 |
TTL索引 | db.logs.createIndex({createdAt: 1}, {expireAfterSeconds: 86400})
| 自动过期删除 |
唯一索引 | db.users.createIndex({email: 1}, {unique: true})
| 确保值唯一 |
六、聚合管道(Aggregation Pipeline)
6.1 聚合框架
聚合管道是MongoDB数据分析的核心工具,基于数据处理流水线的概念,文档经过多个阶段(Stage)的处理,最终输出聚合结果。
6.2 常用管道阶段(Stage)
阶段 | 说明 | 示例 |
|---|
$match
| 过滤文档(类似WHERE) | {$match: {status: "active"}}
|
$group
| 分组并执行聚合计算 | {$group: {_id: "$category", total: {$sum: 1}}}
|
$project
| 选择/重命名字段(类似SELECT) | {$project: {name: 1, age: 1, _id: 0}}
|
$sort
| 排序 | {$sort: {age: -1}}
|
$limit
| 限制输出数量 | {$limit: 10}
|
$skip
| 跳过指定数量 | {$skip: 10}
|
$unwind
| 展开数组字段 | {$unwind: "$tags"}
|
$lookup
| 关联查询(类似JOIN) | {$lookup: {from: "orders", localField: "_id", foreignField: "user_id", as: "orders"}}
|
$addFields
| 添加新字段 | {$addFields: {fullName: {$concat: ["$first", " ", "$last"]}}}
|
$count
| 统计文档数量 | {$count: "total"}
|
$out
| 将结果写入新集合 | {$out: "new_collection"}
|
$merge
| 将结果合并到现有集合 | {$merge: {into: "target", on: "_id"}}
|
$facet
| 多维度分组 | {$facet: {group1: […], group2: […]}}
|
$bucket
| 按区间分组 | {$bucket: {groupBy: "$age", boundaries: [0, 18, 30, 50, 100]}}
|
$sortByCount
| 按计数排序分组 | {$sortByCount: "$category"}
|
6.3 常用聚合表达式操作符
操作符 | 说明 | 示例 |
|---|
$sum
| 求和 | {$sum: "$price"}
|
$avg
| 求平均值 | {$avg: "$age"}
|
$min
| 最小值 | {$min: "$score"}
|
$max
| 最大值 | {$max: "$score"}
|
$push
| 将所有值放入数组 | {$push: "$name"}
|
$addToSet
| 去重后放入数组 | {$addToSet: "$tag"}
|
$first
| 取第一个值 | {$first: "$name"}
|
$last
| 取最后一个值 | {$last: "$name"}
|
$concat
| 字符串连接 | {$concat: ["$first", " ", "$last"]}
|
$substr
| 子字符串 | {$substr: ["$name", 0, 3]}
|
$toUpper
| 转大写 | {$toUpper: "$name"}
|
$toLower
| 转小写 | {$toLower: "$name"}
|
$year
| 提取年份 | {$year: "$date"}
|
$month
| 提取月份 | {$month: "$date"}
|
$dayOfMonth
| 提取日期 | {$dayOfMonth: "$date"}
|
$cond
| 条件表达式 | {$cond: {if: {$gte: ["$score", 60]}, then: "pass", else: "fail"}}
|
6.4 聚合示例
// 统计每个年龄段的人数
db.users.aggregate([
{ $group: { _id: "$age", count: { $sum: 1 } } },
{ $sort: { _id: 1 } }
])
// 关联查询:获取用户及其订单
db.users.aggregate([
{ $match: { status: "active" } },
{ $lookup: {
from: "orders",
localField: "_id",
foreignField: "user_id",
as: "orders"
}},
{ $project: { name: 1, email: 1, orderCount: { $size: "$orders" } } }
])
// 电影平均评分
db.reviews.aggregate([
{ $group: { _id: "$movie_id", averageRating: { $avg: "$rating" } } }
])
七、用户与权限管理命令
7.1 用户管理
操作 | 命令 | 说明 |
|---|
创建用户 | db.createUser({user: "username", pwd: "password", roles: […]})
| 在admin库中创建用户 |
查看所有用户 | db.getUsers() 或 show users
| 列出当前数据库的所有用户 |
查看指定用户 | db.getUser("username")
| 查看用户的详细信息 |
修改密码 | db.changeUserPassword("username", "new_password")
| 修改用户密码 |
更新用户 | db.updateUser("username", {roles: […]})
| 更新用户角色和属性 |
删除用户 | db.dropUser("username")
| 删除指定用户 |
删除所有用户 | db.dropAllUsers()
| 删除当前数据库的所有用户 |
用户认证 | db.auth("username", "password")
| 验证用户身份 |
创建管理员用户示例:
use admin
db.createUser({
user: "admin",
pwd: "secure_password",
roles: ["root"]
})
7.2 角色管理
操作 | 命令 | 说明 |
|---|
创建自定义角色 | db.createRole({role: "role_name", privileges: […], roles: […]})
| 定义细粒度权限 |
查看角色 | db.getRole("role_name")
| 查看角色详细信息 |
查看所有角色 | db.getRoles()
| 列出当前数据库所有角色 |
更新角色 | db.updateRole("role_name", {privileges: […]})
| 修改角色权限 |
授予角色 | db.grantRolesToUser("username", [{role: "role_name", db: "db_name"}])
| 给用户授予角色 |
撤销角色 | db.revokeRolesFromUser("username", [{role: "role_name", db: "db_name"}])
| 撤销用户的角色 |
删除角色 | db.dropRole("role_name")
| 删除自定义角色 |
7.3 常用内置角色
角色 | 级别 | 说明 |
|---|
root
| 全局 | 超级管理员,所有操作权限 |
read
| 数据库 | 只读权限 |
readWrite
| 数据库 | 读写权限 |
dbAdmin
| 数据库 | 数据库管理(索引、统计等) |
userAdmin
| 数据库 | 用户管理权限 |
dbOwner
| 数据库 | 数据库所有者(readWrite+dbAdmin+userAdmin) |
clusterAdmin
| 集群 | 集群管理权限 |
clusterManager
| 集群 | 集群监控管理 |
clusterMonitor
| 集群 | 集群只读监控 |
backup
| 集群 | 备份权限 |
restore
| 集群 | 恢复权限 |
readAnyDatabase
| 全局 | 所有数据库只读 |
readWriteAnyDatabase
| 全局 | 所有数据库读写 |
userAdminAnyDatabase
| 全局 | 所有数据库用户管理 |
dbAdminAnyDatabase
| 全局 | 所有数据库管理 |
八、副本集管理命令
8.1 副本集初始化与配置
操作 | 命令 | 说明 |
|---|
初始化副本集 | rs.initiate()
| 初始化新的副本集 |
初始化指定配置 | rs.initiate({_id: "rs0", members: [{_id: 0, host: "host:port"}]})
| 带配置初始化 |
查看副本集配置 | rs.conf()
| 返回副本集配置文档 |
重新配置 | rs.reconfig(config)
| 应用新的副本集配置 |
查看副本集状态 | rs.status()
| 返回副本集状态信息 |
查看主节点状态 | rs.printReplicationInfo()
| 从主节点角度查看状态 |
查看从节点状态 | rs.printSlaveReplicationInfo()
| 查看从节点同步状态 |
8.2 副本集成员管理
操作 | 命令 | 说明 |
|---|
添加成员 | rs.add("host:port")
| 向副本集添加新成员 |
添加仲裁节点 | rs.addArb("host:port")
| 添加只参与投票的仲裁节点 |
移除成员 | rs.remove("host:port")
| 从副本集移除成员 |
降级主节点 | rs.stepDown()
| 强制主节点降级为从节点 |
冻结节点 | rs.freeze(seconds)
| 阻止节点在一定时间内成为主节点 |
设置同步源 | rs.syncFrom("host:port")
| 手动设置从节点的同步源 |
重新同步 | db.adminCommand({resync: 1})
| 强制从节点重新同步数据 |
8.3 副本集状态命令
操作 | 命令 | 说明 |
|---|
检查当前节点角色 | db.isMaster() 或 rs.isMaster()
| 返回节点角色信息 |
查看oplog信息 | db.getReplicationInfo()
| 查看oplog大小和时间范围 |
查看从节点信息 | db.printSlaveReplicationInfo()
| 查看所有从节点同步状态 |
强制选举 | rs.stepDown() 或 db.adminCommand({replSetStepDown: 60})
| 触发新选举 |
九、分片集群管理命令
操作 | 命令 | 说明 |
|---|
添加分片 | sh.addShard("rs0/host:port")
| 向集群添加分片 |
查看分片状态 | sh.status()
| 查看分片集群状态 |
启用数据库分片 | sh.enableSharding("<database>")
| 对数据库启用分片 |
分片集合 | sh.shardCollection("<db>.<collection>", {shard_key: 1})
| 对集合进行分片 |
添加标签 | sh.addShardTag("shard_name", "tag")
| 为分片添加标签 |
查看均衡器状态 | sh.getBalancerState()
| 查看均衡器是否开启 |
开启/关闭均衡器 | sh.startBalancer() / sh.stopBalancer()
| 控制数据均衡 |
移动数据块 | sh.moveChunk("<db>.<collection>", {shard_key: value}, "target_shard")
| 手动迁移数据块 |
十、备份与恢复命令
10.1 mongodump / mongorestore
操作 | 命令 | 说明 |
|---|
备份所有数据库 | mongodump --out /backup/path
| 导出所有数据库 |
备份指定数据库 | mongodump --db <db_name> --out /backup/path
| 导出指定数据库 |
备份指定集合 | mongodump --db <db_name> --collection <coll_name> --out /backup/path
| 导出指定集合 |
带认证备份 | mongodump -u <user> -p <password> --authenticationDatabase admin --out /backup/path
| 认证后备份 |
压缩备份 | mongodump --gzip --archive=backup.gz
| 压缩格式备份 |
恢复所有数据库 | mongorestore /backup/path
| 恢复所有数据库 |
恢复指定数据库 | mongorestore --db <db_name> /backup/path/<db_name>
| 恢复指定数据库 |
恢复指定集合 | mongorestore --db <db_name> --collection <coll_name> /backup/path/file.bson
| 恢复指定集合 |
带认证恢复 | mongorestore -u <user> -p <password> --authenticationDatabase admin /backup/path
| 认证后恢复 |
从压缩文件恢复 | mongorestore --gzip --archive=backup.gz
| 从压缩文件恢复 |
10.2 mongoexport / mongoimport
操作 | 命令 | 说明 |
|---|
导出为JSON | mongoexport --db <db_name> --collection <coll_name> --out file.json
| 导出为JSON格式 |
导出为CSV | mongoexport --db <db_name> --collection <coll_name> --type=csv --fields field1,field2 --out file.csv
| 导出为CSV格式 |
带查询导出 | mongoexport --db <db_name> --collection <coll_name> --query '{field: value}' --out file.json
| 按条件导出 |
导入JSON | mongoimport --db <db_name> --collection <coll_name> --file file.json
| 导入JSON文件 |
导入CSV | mongoimport --db <db_name> --collection <coll_name> --type=csv --headerline --file file.csv
| 导入CSV文件 |
批量导入 | mongoimport --db <db_name> --collection <coll_name> --file file.json --numInsertionWorkers 4
| 多线程导入 |
十一、性能监控与诊断命令
11.1 性能监控
操作 | 命令 | 说明 |
|---|
查看当前操作 | db.currentOp()
| 查看正在执行的操作 |
终止操作 | db.killOp(opid)
| 终止指定操作 |
查看慢查询 | db.getProfilingStatus()
| 查看性能分析器状态 |
设置性能分析级别 | db.setProfilingLevel(level, slowms)
| 0-关闭,1-只记录慢查询,2-记录所有操作 |
查看慢查询日志 | db.system.profile.find().pretty()
| 查询性能分析记录 |
查看集合统计 | db.<collection>.stats()
| 返回集合的详细统计 |
查看数据库统计 | db.stats()
| 返回数据库统计信息 |
查看服务器状态 | db.serverStatus()
| 返回服务器运行状态 |
11.2 诊断命令
操作 | 命令 | 说明 |
|---|
查看锁信息 | db.serverStatus().locks
| 查看锁状态 |
查看连接数 | db.serverStatus().connections
| 查看当前连接数 |
查看内存使用 | db.serverStatus().mem
| 查看内存使用情况 |
查看网络统计 | db.serverStatus().network
| 查看网络流量统计 |
查看oplog统计 | db.getReplicationInfo()
| 查看oplog信息 |
查看存储引擎统计 | db.serverStatus().wiredTiger
| WiredTiger引擎统计 |
诊断数据库 | db.runCommand({dbStats: 1, scale: 1024})
| 获取数据库统计(KB单位) |
验证集合 | db.<collection>.validate({full: true})
| 完整验证集合数据 |
十二、数据类型速查
类型 | 说明 | 示例 |
|---|
String
| 字符串 | "hello"
|
Integer
| 32位整数 | NumberInt(100)
|
Long
| 64位整数 | NumberLong("10000000000")
|
Double
| 双精度浮点数 | 100.5
|
Boolean
| 布尔值 | true / false
|
ObjectId
| 自动生成的主键 | ObjectId("507f1f77bcf86cd799439011")
|
ISODate
| 日期时间 | ISODate("2024-01-01T00:00:00Z")
|
Timestamp
| 时间戳 | Timestamp(1234567890, 1)
|
Array
| 数组 | ["a", "b", "c"]
|
Object
| 嵌套文档 | {name: "张三", age: 25}
|
Null
| 空值 | null
|
Binary Data
| 二进制数据 | BinData(0, "base64string")
|
Regular Expression
| 正则表达式 | /{regex}/
|
JavaScript
| JavaScript代码 | function() {…}
|
Decimal128
| 高精度小数 | NumberDecimal("100.55")
|
MinKey / MaxKey
| 最小/最大值 | MinKey / MaxKey
|