MongoDB指令整理

启动mongoDB

运行 MongoDB

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

1
sudo mkdir -p /data/db

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

1
2
3
4
5
6
sudo mongod #启动mongo
#参数
--dbpath [数据存放path] #指定数据库path
-auth #开启授权启动
--logpath [数据存放path] #指定日志路径
--port [端口号]

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

1
mongo

MongoDB配置

  • 端口

    • 默认端口 27017

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

数据库操作

创建数据库
1
use DATABASE_NAME

如果数据库不存在,则创建数据库,否则切换到指定数据库。

查看当前数据库
1
2
db
db.getName()
查看所有数据库
1
show dbs
删除数据库
1
db.dropDatabase()
拷贝数据库
1
2
3
db.cloneDatabase("127.0.0.1") #将指定机器上的数据库的数据克隆到当前数据库
db.copyDatabase("mydb", "temp", "127.0.0.1") #将本机的mydb的数据复制到temp数据库中
连接数据库
1
mongo://[host:port/database] -u [user] -p [password] 192.168.1.200:27017/test -u user -p password

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

用户管理

查看用户
1
db.system.find()
添加用户
1
2
3
4
5
6
7
8
9
10
11
#添加用户:
db.createUser({
user: "<name>", //用户名
pwd: "<cleartext password>",
customData: { <any information> }, //可选的,备注信息。
roles: [
{ role: "<role>", db: "<database>" } | "<role>", //指定角色
...
]},
writeConcern: { <write concern> }
)
更新用户
1
2
3
4
5
6
7
8
9
10
11
12
13
#更改用户信息:将会覆盖掉原先的用户信息
root(
"<username>",
{
customData : { <any information> },
roles : [
{ role: "<role>", db: "<database>" } | "<role>",
...
],
pwd: "<cleartext password>"
},
writeConcern: { <write concern> }
)
删除用户
1
db.dropUser('test') #必须在该用户创建的库中删除

数据操作/CRUD

Create 插入数据
1
2
3
4
db.collection.insert() # 插入数据
db.collection.save() # 不传Id会插入一条新的数据,传id此操作变为更新数据
db.collection.insertOne() # 向指定集合中插入一条文档数据
db.collection.insertMany() # 向指定集合中插入多条文档数据,传入数组
Retrieve读取数据
1
2
db.collection.find(query, projection)
db.col.find().pretty() # pretty
Update更新数据
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
db.collection.update( # 更新已存在的文档
<query>, # update的查询条件
<update>, # update的对象和一些更新的操作符(如$,$inc...)等
{
upsert: <boolean>, # 可选,如果不存在update的记录,是否插入一条新的,默认是false,不插入。
multi: <boolean>, # 可选,默认是false,只更新找到的第一条记录,否则更新全部
writeConcern: <document> # 可选,抛出异常的级别。
}
)
db.collection.save( # 通过传入的文档来替换已有文档
<document>,
{
writeConcern: <document>
}
)
1
2
3
4
5
6
7
8
9
10
11
12
# 只更新第一条记录:
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删除数据
1
2
3
4
5
6
7
db.collection.remove( # 移除集合中的数据。
<query>,
{
justOne: <boolean>,
writeConcern: <document>
}
)

数据表操作

1
show collections
1
db.collections.help(); user为表名

http://www.cnblogs.com/ontheroad_lee/p/3684280.html