MongoDB常用命令
以
$结尾的为用户自定义的变量,例如 DATABASE_NAME,
1 连接
mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]
2 查询
# 查看数据库(需要有数据才能显示)
show dbs
# 如果要查看已有集合
show collections
show tables
# 查询
db.COLLECTION_NAME$.find(query, projection)
db.COLLECTION_NAME$.findOne(query, projection)
# 查询结果排序、跳过及限量(三者先后顺序无关)
db.COLLECTION_NAME$.find(query, projection).sort({KEY:1}).skip(NUMBER).limit(NUMBER)
3 创建
# 创建数据库
use DATABASE_NAME$
# 创建表
db.createCollection(name[, options])
4 删除
# 删除数据库
db.dropDatabase()
# 删除集合(表)
db.COLLECTION_NAME$.drop()
# 删除文档
db.COLLECTION_NAME$.deleteOne(
<query>,
{
writeConcern: <document>
}
)
db.COLLECTION_NAME$.deleteMany(
<query>,
{
writeConcern: <document>
}
)
5 变更
# 插入文档
db.COLLECTION_NAME$.insert(document)
# 更新已经存在的数据
db.COLLECTION_NAME$.update(
<query>,
<update>,
{
upsert: <boolean>,
multi: <boolean>,
writeConcern: <document>
}
)
# 替换 如果未指定 _id 和 insert 一样,指定了则更新该对象
db.COLLECTION_NAME$.save(
<document>,
{
writeConcern: <document>
}
)
# 查找且替换
db.COLLECTION_NAME$.findAndModify({
<query>,
<update>
})
6 索引
db.COLLECTION_NAME$.createIndex(keys, options)
# 查看集合索引
db.COLLECTION_NAME$.getIndexes()
# 查看集合索引大小
db.COLLECTION_NAME$.totalIndexSize()
# 删除集合所有索引
db.COLLECTION_NAME$.dropIndexes()
# 删除集合指定索引
db.COLLECTION_NAME$.dropIndex(key)
7 聚合
db.COLLECTION_NAME$.aggregate(AGGREGATE_OPERATION)
# 管道
db.COLLECTION_NAME$.aggregate([...AGGREGATE_OPERATION])
8 MongoDB 复制(副本集)
mongod --port "PORT" --dbpath "YOUR_DB_DATA_PATH" --replSet "REPLICA_SET_INSTANCE_NAME"
# 启动一个新的副本集。
rs.initiate()
# 查看副本集的配置
rs.conf()
# 查看副本集状态
rs.status()
# 副本集添加成员
rs.add(HOST_NAME:PORT)
参数详解
options in createCollection()
- capped 布尔 (可选)如果为 true,则创建固定集合。固定集合是指有着固定大小的集合,当达到最大值时,它会自动覆盖最早的文档。 当该值为 true 时,必须指定 size 参数。
- autoIndexId 布尔 (可选)如为 true,自动在 _id 字段创建索引。默认为 false。
- size 数值 (可选)为固定集合指定一个最大值,以千字节计(KB)。 如果 capped 为 true,也需要指定该字段。 max 数值 (可选)指定固定集合中包含文档的最大数量。