#参考文档 https://www.cnblogs.com/d0usr/p/12583162.html
#服务端官网下载和解压
# https://www.mongodb.com/download-center/community/releases
wget https://fastdl.mongodb.org/linux ... 64-rhel62-4.4.1.tgz
tar -zxvf mongodb-linux-x86_64-rhel62-4.4.1.tgz
mv mongodb-linux-x86_64-rhel62-4.4.1 /usr/local/mongodb
#配置环境
vim ~/.bash_profile
export PATH=/usr/local/mongodb/bin:$PATH
source ~/.bash_profile
#创建相关目录及文件
cd /usr/local/mongodb
mkdir -p data/db # 数据目录:用于存储 mongodb 数据
mkdir log # 日志目录:用于存储 mongodb 日志
mkdir etc # 配置文件目录:用于存放配置文件
touch log/mongodb.log
#修改配置文件
vi etc/mongodb.conf
========================================================================
dbpath=/usr/local/mongodb/data/db # 指定数据存储目录
logpath=/usr/local/mongodb/log/mongodb.log # 指定日志文件存储目录
logappend=true # 使用追加方式写日志
port=27017 # 端口
fork=true # 以守护进程方式运行
auth=true # 启用验证
bind_ip=0.0.0.0 # 允许任意外部地址访问
========================================================================
#软件链接
ln -s /usr/local/mongodb/bin/* /usr/bin/
#启动程序
yum install xz-compat-libs -y
/usr/local/mongodb/bin/mongod --config /usr/local/mongodb/etc/mongodb.conf
#关闭 mongodb
========================================================================
ps -ef | grep mongodb # 获取 mongodb 进程信息
kill -9 进程Id
========================================================================
#添加用户
/usr/local/mongodb/bin/mongo #端口进入 mongo --port 8004
========================================================================
// 使用admin数据库
use admin
// 给admin数据库添加管理员用户名和密码,用户名和密码请自行设置
db.createUser({user:"admin",pwd:"admin",roles:["root"]})
// 验证是否成功,返回1则代表成功
db.auth("admin", "admin")
// 切换到要设置的数据库,以test为例
use test
// 为test创建用户,用户名和密码请自行设置。
db.createUser({user: "test", pwd: "test", roles: [{ role: "dbOwner", db: "test" }]})
========================================================================
#客户端下载
# 官网下载 robo 3t:https://robomongo.org/download,通过 robo 3t 连接。
##命令行
#MongoDB基本命令的使用
https://www.cnblogs.com/zhuawang/p/3965272.html
##基础命令行
https://www.runoob.com/mongodb/mongodb-connections.html
#直接授权登陆,待确认
mongo --port 8004 -u "gly" --authenticationDatabase "runoob" -p "123456"
##菜鸟教程
#进入命令行
mongo --port 8004
#先用管理员创建了用户 admin
use admin
db.createUser({user:"admin",pwd:"123456",roles:["dbAdmin"]})
db.auth("admin", "123456")
#查看当前所在库
db
#给runoob数据库添加管理员用户名和密码,用户名和密码请自行设置
db.createUser({user:"gly",pwd:"123456",roles:["userAdmin", "dbAdmin", "dbOwner", "dbOwner", "readWrite", "userAdmin"]})
#命令行切换下登陆
db.auth("gly", "123456")
#创建其它数据库
use runoob
#查看所有数据库
show dbs
#查看所有角色
show roles
#查看当前库下的用户
show users
#删除用户
db.dropUser('admin2')
#修改用户密码
db.changeUserPassword('admin', '123456')
#删除数据库
db.dropDatabase()
#删除集合
db.collection.drop()
#在 mydb 数据库中创建 runoob 集合:
use mydb
db.createCollection("runoob")
#创建集合
db.createCollection("mycol", { capped : true, autoIndexId : true, size : 6142800, max : 10000 } )
#查看所有集合
show tables
show collections
#删除集合
db.mycol2.drop()
#插入文档
db.mycol3.insert({title: 'MongoDB 教程',
description: 'MongoDB 是一个 Nosql 数据库',
by: '菜鸟教程',
url: 'http://www.runoob.com',
tags: ['mongodb', 'database', 'NoSQL'],
likes: 100
})
#查询文档
db.mycol3.find()
#更新文档
db.mycol3.update({'title':'MongoDB 教程'},{$set:{'title':'MongoDB'}})
#save() 方法:save() 方法通过传入的文档来替换已有文档,_id 主键存在就更新,不存在就插入。
========================================================
db.mycol3.save({
"_id" : ObjectId("5fbbae911519c2794933812d"),
"title" : "MongoDB fucket",
"description" : "MongoDB 是一个 Nosql 数据库",
"by" : "Runoob",
"url" : "http://www.runoob.com",
"tags" : [
"mongodb",
"NoSQL"
],
"likes" : 110
})
========================================================
#更多实例
#只更新第一条记录:
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 );
#删除文档
db.mycol3.remove({'title':'MongoDB 教程'})
db.mycol3.remove({'_id':ObjectId("5fbbae911519c2794933812d"})
##查询文档
#易读的方式来读取数据
db.mycol3.find().pretty()
db.mycol3.findOne()
#MongoDB 与 RDBMS Where 语句比较
操作 格式 范例 RDBMS中的类似语句
等于 {<key>:<value>} db.col.find({"by":"菜鸟教程"}).pretty() where by = '菜鸟教程'
小于 {<key>:{$lt:<value>}} db.col.find({"likes":{$lt:50}}).pretty() where likes < 50
小于或等于 {<key>:{$lte:<value>}} db.col.find({"likes":{$lte:50}}).pretty() where likes <= 50
大于 {<key>:{$gt:<value>}} db.col.find({"likes":{$gt:50}}).pretty() where likes > 50
大于或等于 {<key>:{$gte:<value>}} db.col.find({"likes":{$gte:50}}).pretty() where likes >= 50
不等于 {<key>:{$ne:<value>}} db.col.find({"likes":{$ne:50}}).pretty() where likes != 50
#MongoDB AND 条件
db.mycol3.find({"by":"菜鸟教程", "title":"MongoDB 教程"}).pretty()
#MongoDB OR 条件
db.mycol3.find({$or:[{"by":"菜鸟教程"},{"title": "MongoDB 教程"}]}).pretty()
#AND 和 OR 联合使用
db.mycol3.find({"likes": {$gt:50}, $or: [{"by": "菜鸟教程"},{"title": "MongoDB 教程"}]}).pretty()
##MongoDB 条件操作符
#清空集合
db.col.remove({})
#MongoDB (>) 大于操作符 - $gt
db.col.find({likes : {$gt : 100}})
#MongoDB(>=)大于等于操作符 - $gte
db.col.find({likes : {$gte : 100}})
#MongoDB (<) 小于操作符 - $lt
db.col.find({likes : {$lt : 150}})
#MongoDB (<=) 小于等于操作符 - $lte
db.col.find({likes : {$lte : 150}})
#MongoDB 使用 (<) 和 (>) 查询 - $lt 和 $gt
db.col.find({likes : {$lt :200, $gt : 100}})
#MongoDB 操作符 - $type 实例
#如果想获取 "col" 集合中 title 为 String 的数据,你可以使用以下命令:
db.col.find({"title" : {$type : 2}})
或
db.col.find({"title" : {$type : 'string'}})
#MongoDB Limit() 方法
#如果你需要在MongoDB中读取指定数量的数据记录,可以使用MongoDB的Limit方法,limit()方法接受一个数字参数,该参数指定从MongoDB中读取的记录条数。
db.COLLECTION_NAME.find().limit(NUMBER)
#MongoDB Skip() 方法
#我们除了可以使用limit()方法来读取指定数量的数据外,还可以使用skip()方法来跳过指定数量的数据,skip方法同样接受一个数字参数作为跳过的记录条数。
db.COLLECTION_NAME.find().limit(NUMBER).skip(NUMBER)
#MongoDB sort() 方法
#在 MongoDB 中使用 sort() 方法对数据进行排序,sort() 方法可以通过参数指定排序的字段,并使用 1 和 -1 来指定排序的方式,其中 1 为升序排列,而 -1 是用于降序排列
db.COLLECTION_NAME.find().sort({KEY:1})
db.col.find({},{"title":1,_id:0}).sort({"likes":-1})
#createIndex() 方法
#语法中 Key 值为你要创建的索引字段,1 为指定按升序创建索引,如果你想按降序来创建索引指定为 -1 即可。
db.collection.createIndex(keys, options)
db.col.createIndex({"title":1})
db.col.createIndex({"title":1,"description":-1})
#MongoDB 聚合: MongoDB 中聚合(aggregate)主要用于处理数据(诸如统计平均值,求和等),并返回计算后的数据结果。
#网址https://www.runoob.com/mongodb/mongodb-aggregate.html
#MongoDB 监控: mongostat。https://www.runoob.com/mongodb/mongodb-mongostat-mongotop.html
#备份恢复: mongodump mongorestore。https://www.runoob.com/mongodb/m ... p-mongorestore.html
#MongoDB 连接命令格式,先进入命令行模式:mongo --port 8004
#标准 URI 连接语法:
mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]
#使用用户 admin 使用密码 123456 连接到本地的 MongoDB 服务上
mongodb://admin:123456@localhost/
#使用用户名和密码连接登录到指定数据库
mongodb://admin:123456@localhost/test
##php相关
#参考网址 https://pecl.php.net/package/mongodb
#参考网址 https://www.runoob.com/mongodb/php7-mongdb-tutorial.html
#php7安装扩展
wget http://pear.php.net/go-pear.phar
php go-pear.phar
ln -s /usr/local/php7/bin/* /usr/bin/
pecl install mongodb
echo 'extension=mongodb.so' >> /usr/local/php7/etc/php.ini
service php-fpm7 restart
##python相关
https://www.runoob.com/python3/python-mongodb.html
|