mongodb命令速查

175 阅读1分钟

MongoDB常用命令

$ 结尾的为用户自定义的变量,例如 DATABASE_NAME,COLLECTION_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])

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 数值 (可选)指定固定集合中包含文档的最大数量。