ddxiami

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 3182|回复: 0

mongodb操作文档

[复制链接]
发表于 2020-12-2 16:02:02 | 显示全部楼层 |阅读模式
#参考文档 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




回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|技术文档库 ( 闽ICP备15017263号-2 )|网站地图

GMT+8, 2025-5-18 17:39 , Processed in 0.035840 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表