共计 3065 个字符,预计需要花费 8 分钟才能阅读完成。
1、下载网址:https://www.mongodb.com/try/d…
2、解压
tar -zxvf mongodb-linux-x86_64-amazon2-6.0.4.tgz
3、寄存、配置
cd mongodb #进入文件夹 | |
mkdir data | |
mkdir logs | |
# 改名 | |
mv mongodb-linux-x86_64-amazon2-6.0.4.tgz mongodb |
配置
vim /etc/profile
# mongodb 配置 | |
export MONGODB_HOME=/usr/local/mongodb | |
export PATH=$MONGODB_HOME/bin:$PATH |
# 刷新 | |
source ~/.bash_profile |
4、增加 MongoDB 配置文件
vim /etc/mongodb.conf
# 指定数据库门路 | |
dbpath=/usr/local/mongodb/data | |
#指定 MongoDB 日志文件 | |
logpath=/usr/local/mongodb/logs/mongodb.log | |
# 应用追加的形式写日志 | |
logappend=true | |
#端口号 | |
port=27017 | |
#不便外网拜访, 外网所有 ip 都能够拜访,不要写成固定的 linux 的 ip | |
bind_ip=0.0.0.0 | |
fork=true # 以守护过程的形式运行 MongoDB,创立服务器过程 | |
#auth=true #启用用户验证 | |
#bind_ip=0.0.0.0 #绑定服务 IP,若绑定 127.0.0.1,则只能本机拜访,不指定则默认本地所有 IP |
5、启动、敞开 mongodb
# 启动 MongoDB(-conf 应用配置文件形式启动)mongod -f /etc/mongodb.conf
# 敞开 MongoDB(-conf 应用配置文件形式敞开)mongod --shutdown -f /etc/mongodb.conf
# 查看过程 | |
ps -ef | grep mongod |
6、装置 shell 工具
因为高版本的 mongodb 去掉了自带的 shell 工具
https://www.mongodb.com/try/d…
tar -zxvf mongosh-1.6.2-linux-x64.tgz | |
#挪动文件 | |
mv mongosh-1.6.2-linux-x64 /usr/local/mongosh |
# 无明码连贯 | |
/usr/local/mongosh/bin/mongosh | |
#应用账号密码登录 | |
/usr/local/mongosh/bin/mongosh -u root -p 123456 |
7、创立用户
use admin; | |
db.createUser({user: 'root', pwd: '123456', roles: [{role: 'root', db: 'admin'}]}); | |
db.createUser({user: 'admin', pwd: '123456', roles: [{role: 'userAdminAnyDatabase', db: 'admin'}]}); | |
Read:容许用户读取指定数据库 | |
readWrite:容许用户读写指定数据库 | |
dbAdmin:容许用户在指定数据库中执行治理函数,如索引创立、删除,查看统计或拜访 system.profile | |
userAdmin:容许用户向 system.users 汇合写入,能够找指定数据库里创立、删除和治理用户 | |
clusterAdmin:只在 admin 数据库中可用,赋予用户所有分片和复制集相干函数的管理权限。readAnyDatabase:只在 admin 数据库中可用,赋予用户所有数据库的读权限 | |
readWriteAnyDatabase:只在 admin 数据库中可用,赋予用户所有数据库的读写权限 | |
userAdminAnyDatabase:只在 admin 数据库中可用,赋予用户所有数据库的 userAdmin 权限 | |
dbAdminAnyDatabase:只在 admin 数据库中可用,赋予用户所有数据库的 dbAdmin 权限。root:只在 admin 数据库中可用。超级账号,超级权限。 |
8、简略指令的应用
use test_user #创立数据库 | |
db.myuser.insertOne({name: 'tom', age:18}) #插入数据 | |
show dbs #显示数据库 | |
show collections #显示汇合 | |
db.myuser.find(); #查问 | |
db.myuser.find().pretty(); | |
db.myuser.find({ name: 'tom'} ); #依据条件查问 | |
db.myuser.find({ age: 18} ); | |
db.myuser.find().limit(2); #分页查问 | |
db.myuser.find().skip(0).limit(2); | |
db.myuser.find().skip(2).limit(2); | |
db.myuser.find().sort({ age: 1}); #正序查问 | |
db.myuser.find().sort({ age: -1}); #倒序查问 | |
db.myuser.find().skip(2).limit(10).sort({age:1}); #查问数据之后排序 | |
$gt #大于 | |
$lt #小于 | |
$gte #大于或等于 | |
$lte #小于或等于 | |
db.myuser.find({age: {$lt: 18} }) #查问年龄小于 18 | |
db.myuser.find({$or: [ {name: 'john'},{name: 'mary'} ] }); #或 | |
db.myuser.find({$and: [ {name: 'john'},{age: 20} ] }); #且 | |
#正则查问 | |
db.myuser.find({name: {$regex: "mar[a-z]"} }); #查问名字中下一个字母是 a - z 的 | |
db.myuser.find({"name":{$regex:"(a)"}} ); #查问名字中蕴含字母 a 的。db.myuser.find({age:1} ).explain(true); #解释执行,类比 MySQL 的 explain | |
db.myuser.getIndexes(); #查看索引 | |
db.myuser.ensureIndex({age:1} ) #增加索引 | |
db.myuser.dropIndex({age:1} ) #删除索引,应用正则查问 索引有效 | |
db.myuser.ensureIndex({userid:1},{unique:true} ) #创立惟一索引 | |
#还能够执行如下语句插入 | |
db.myuser.insert({age: 29} ); | |
db.myuser.insert({name: 'james'} ); | |
db.myuser.insert({'location': '北京'} ); | |
#批改数据 | |
db.myuser.update({age: 29}, {$set: { age: 30}}); | |
db.myuser.update({'name': 'tom'}, {$set: { 'name': 'snail'} }); | |
#删除数据 | |
db.myuser.remove({name: 'snail'}); #依据条件删除 | |
db.myuser.remove({} ) #删除所有数据 | |
#删除汇合,类比 mysql 删除表 | |
db.myuser.drop(); | |
#删除数据库 | |
db.dropDatabase(); | |
#监控 | |
db.serverStatus(); #查看所有的监控信息 | |
db.serverStatus().network ; #独自查看网络流量信息 | |
db.serverStatus().opcounters; #统计增、删、改、查的次数 | |
db.serverStatus().connections; #连贯信息 | |
正文完