MongoDB 基本命令
一、基本概念
- 数据库:db,类似于Mysql中的数据库,一个mongoDB里面可以有多个数据库
- collection:集合,类似于mysql里面的表的概念,表内有很多记录,集合内也有很多记录
- document:文档,类似于mysql的行,一个文档相当于一条记录
- field:字段,和mysql的字段含义一样,mongodb中称为域
- MongoDB不支持的:不支持表连接
二、程序命令
- 远程连接:mongo 远程主机ip或DNS:MongoDB端口号/数据库名 -u user -p password
- 无密码连接:mongo 192.168.1.100:27017/test
- mongodb自带客户端:mongo --host xxx --port xxxx
- 启动Mongodb服务:mongod -f xx.conf
三、MongoDB数据库操作
- 查询数据库:show dbs;
- 使用数据库:use xxx;
- 显示当前使用的数据库:db
- 查询表内数据:db.tableName.find() — 无条件查询,find内可以带条件
- 查索引:db.COLLECTION_NAME.getIndexes()
- 查询数据表:show tables;
- 删除数据:db.getCollection(‘face’).remove({})
- 修改数据:db.col.update({‘title’:‘123’},{$set:{‘title’:‘456’}})将title为1 23的文档修改为456
- 创建索引:db.col.createIndex({“title”:1})
- 创建索引:db.values.createIndex({open: 1, close: 1}, {background: true})
- 监控命令:mongostat -rowcount 200 1 -h 192.168.xx.1 --port 27017
四、MongoDB备份
4.1 备份一个库
mongodump -h 127.0.0.1:47017 -d dnName -o /localFolder/bak/
mongodump -h 192.168.11.119 --port 27017 -u username -p password -d dbName -o ../mongodbbak
-o后面是本地的备份文件存放路径
4.2 备份一个集合
mongodump -h 127.0.0.1:47017 --collection collName -d testDbOne -o /home/bak/
./mongodump.exe -h 192.168.11.43:27017 --collection multobj -d ifaas_data -u ifaas_data -p introcks1234 -o ../mongodbbak/
- 可以使用–query参数指定一个json的条件表达式,只备份指定条件的数据,具体命令参数可以通过./mongodump --help查看
五、MongoDB恢复
mongorestore -h <hostname><:port> -d dbname --drop: <path>
--drop可以在恢复时删除原有数据
最后面的path是备份文件的全路径,或者直接--dir指定备份文件夹,二选一
./mongorestore -h 192.168.11.244:31000 -u ifaas_data -p introcks1234 -d ifaas_data ../mongodbbak/ifaas_data/
./mongodump.exe -h 192.168.11.147 -d ifaas_data -u ifaas_data -p introcks1234 -o ../mongodbbak
- 可以通过 --verbose 看到更多详细的输出
- 可以通过–numInsertionWorkersPerCollection=10指定同时使用10个线程恢复数据
- 具体命令参数可以通过./mongorestore --help查看
六、Mongodb的关闭
6.1 使用mongod命令关闭
使用mongod命令shutdown的安全停止方式
use admin;
db.shutdownServer();
6.2 使用kill关闭
kill -2 pid // 表示向mongod进程发送sigint信号
kill -4 pid // 表示向mongod进程发送sigterm信号
其中pid是mongodb的进程号, mongod进程收到sigint信号或者sigterm信号,会做一些处理:关闭所有打开的连接;
将内存数据强制刷新到磁盘,当前的操作执行完毕;
七、运行mongodb实例
7.1 创建mongodb配置文件
systemLog:
destination: file
path: /home/intellif/mongodbdata/log/mongoSys.log
logAppend: true
storage:
journal:
enabled: true
dbPath: /home/intellif/mongodbdata/data
directoryPerDB: true
wiredTiger:
engineConfig:
cacheSizeGB: 10.0
directoryForIndexes: true
collectionConfig:
blockCompressor: zlib
indexConfig:
prefixCompression: true
net:
bindIp: 192.168.13.53
port: 27017
processManagement:
fork: true
operationProfiling:
mode: slowOp
slowOpThresholdMs: 10
slowOpSampleRate: 0.5
7.2 运行
./bin/mongod -f ./mongodb.conf
7.3 创建库和用户
1.连接mongo --host ip --port port
2.创建库:use mzp
3.创建对应的用户:
> db.createUser(
... {
... user:"mzp",
... pwd:"mzp",
... roles:[{role:"readWrite",db:"mzp"}]
... }
... )
//----------------------------------------
> show dbs;
admin 0.000GB
config 0.000GB
local 0.000GB
>
>
> use mzp
switched to db mzp
> db.createUser(
... {
... user:"mzp",
... pwd:"mzp",
... roles:[{role:"readWrite",db:"mzp"}]
... }
... )
Successfully added user: {
"user" : "mzp",
"roles" : [
{
"role" : "readWrite",
"db" : "mzp"
}
]
}
>
4.连接:./bin/mongo 192.168.13.53:27017/mzp -u mzp -p mzp
5.创建集合:db.createCollection("info")
6.插入记录:db.info.insert({name:"mozping"})
6.查询:db.getCollection('info').find({})