发布于

MongoDB命令整理

Authors
  • avatar
    Name
    田中原
    Twitter

MongoDB命令整理

目录

启动mongoDB

运行 MongoDB

1、首先我们创建一个数据库存储目录 /data/db:

sudo mkdir -p /data/db

启动 mongodb,默认数据库目录即为 /data/db:

sudo mongod #启动mongo

#参数

--dbpath [数据存放path]  #指定数据库path

-auth #开启授权启动

--logpath [数据存放path]  #指定日志路径

--port [端口号]

开启一个新的终端进入MongoDB shell

mongo

MongoDB配置

  • 端口
    • 默认端口 27017
    • Mongo shell 获取端口 db.getMongo()

数据库操作

连接数据库
mongo://[host:port/database] -u [user] -p [password] 192.168.1.200:27017/test -u user -p password
数据库常用命令
use DATABASE_NAME # 创建数据库,如果数据库不存在,则创建数据库,否则切换到指定数据库。
db.getName() # 查看当前数据库
show dbs  # 查看所有数据库
db.dropDatabase() # 删除数据库
db.cloneDatabase("127.0.0.1")   #将指定机器上的数据库的数据克隆到当前数据库
db.copyDatabase("mydb", "temp", "127.0.0.1")  #将本机的mydb的数据复制到temp数据库中
db.repairDatabase() #修复当前数据库
db.getName() #查看当前使用的数据库,也可以直接用db
db.stats() #显示当前db状态
db.version() #当前db版本
db.getMongo() #查看当前db的链接机器地址
db.serverStatus() #查看数据库服务器的状态CRUD

用户管理

查看用户
db.system.find() # 查看用户

#添加用户:
db.createUser({
  user: "<name>", //用户名
  pwd: "<cleartext password>",
  customData: { <any information> }, //可选的,备注信息。
  roles: [
    { role: "<role>", db: "<database>" } | "<role>", //指定角色
    ...
  ]},
  writeConcern: { <write concern> }
 )


#更改用户信息:将会覆盖掉原先的用户信息
root(
   "<username>",
   {
     customData : { <any information> },
     roles : [
               { role: "<role>", db: "<database>" } | "<role>",
               ...
             ],
     pwd: "<cleartext password>"
    },
    writeConcern: { <write concern> }
)

# 删除用户:
db.dropUser('test') #必须在该用户创建的库中删除


数据操作CRUD

Create 插入数据
db.collection.insert()        # 插入数据

db.collection.save()          # 不传Id会插入一条新的数据,传id此操作变为更新数据

db.collection.insertOne()     # 向指定集合中插入一条文档数据

db.collection.insertMany()     # 向指定集合中插入多条文档数据,传入数组
Retrieve读取数据
db.collection.find(query, projection)

db.col.find().pretty() # pretty
Update更新数据
db.collection.update(             # 更新已存在的文档
   <query>,            # update的查询条件
   <update>,          # update的对象和一些更新的操作符(如$,$inc...)等
   {
     upsert: <boolean>,       # 可选,如果不存在update的记录,是否插入一条新的,默认是false,不插入。
     multi: <boolean>,       # 可选,默认是false,只更新找到的第一条记录,否则更新全部
     writeConcern: <document>    # 可选,抛出异常的级别。
   }
)
db.collection.save(        # 通过传入的文档来替换已有文档
   <document>,
   {
     writeConcern: <document>
   }
)
# 只更新第一条记录:
db.col.update( { "count" : { $gt : 1 } } , { $set : { "test2" : "OK"} } );
# 全部更新:
db.col.update( { "count" : { $gt : 3 } } , { $set : { "test2" : "OK"} },false,true );
# 只添加第一条:
db.col.update( { "count" : { $gt : 4 } } , { $set : { "test5" : "OK"} },true,false );
# 全部添加加进去:
db.col.update( { "count" : { $gt : 5 } } , { $set : { "test5" : "OK"} },true,true );
# 全部更新:
db.col.update( { "count" : { $gt : 15 } } , { $inc : { "count" : 1} },false,true );
# 只更新第一条记录:
db.col.update( { "count" : { $gt : 10 } } , { $inc : { "count" : 1} },false,false );

Delete删除数据
# 移除集合中的数据。
db.collection.remove(
   <query>,
   {
     justOne: <boolean>,
     writeConcern: <document>
   }
)

数据表操作

show collections

db.collections.help();