美文网首页
mongodb learn

mongodb learn

作者: 斜月86 | 来源:发表于2019-04-14 18:15 被阅读0次
Centos mongodb 安装

http://www.runoob.com/mongodb/mongodb-analyzing-queries.html
cd /usr/local/software
下载安装包
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.6.12.tgz
或者
curl -L -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.6.12.tgz

tar -xvf mongodb-linux-x86_64-3.6.12.tgz
cd mongodb-linux-x86_64-3.6.12
touch mongodb.log
mkdir data
touch mongo.conf

## 服务端口
port=27017
## 数据文件目录
dbpath=/usr/local/software/mongodb-linux-x86_64-3.6.12/data
## 日志文件目录
logpath=/usr/local/software/mongodb-linux-x86_64-3.6.12/mongodb.log
## 是否后台启动
fork=true
## 追加方式写日志
logappend=true
## 是否鉴权 首次启动改为false 创建用户后改为true
auth=false
## 是否允许远程访问
bind_ip=0.0.0.0

1. 数据库用户角色:read、readWrite;  
2. 数据库管理角色:dbAdmin、dbOwner、userAdmin;       
3. 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
4. 备份恢复角色:backup、restore;
5. 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
6. 超级用户角色:root  
// 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)
7. 内部角色:__system

启动 mongo
./bin/mongod --config mongo.conf
链接mongodb
./bin/mongo -utest -ptest
创建用户
db.createUser({user:"test",pwd:"test",roles:[{role:"root",db:"admin"}]});

use destiny
db.createUser({user:"destiny",pwd:"123456",roles:[{role:"readWrite",db:"destiny"}]});

删除用户
b.system.users.remove({user:"destiny"});
删除所有用户
db.system.users.remove({})
查询所有用户
db.system.users.find().pretty();

关闭服务
db.shutdownServer();
切换数据库
use admin;
查看数据库版本
db.version();
获取数据库名称
db.getName();
删除数据库
use testdb
db.dropDatabase()
删除数据库
use testdb
删除集合
db.collectionname.drop()
创建集合
db.createCollection("runoob")
capped 创建固定集合
autoIndexId 自动在_id 创建索引
size 集合的最大值 字节 capped为true时指定
max 文档的最大数量
先检查size 在检查max

db.createCollection("runoob", { capped : true, autoIndexId : true, size :
6142800, max : 10000 } )

查看所有集合
show collections

新增或者查找
db.col.insert();
db.col.find()

更新文档语法

query : update的查询条件,类似sql update查询内where后面的。
update : update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的
upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
writeConcern :可选,抛出异常的级别。

db.collection.update(
<query>,
<update>,
{
upsert: <boolean>,
multi: <boolean>,
writeConcern: <document>
}
)
更新
db.col.update({'title':'MongoDB 教程'},{$set:{'title':'MongoDB'}})

只更新第一条记录:
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.col.remove({});

操作 格式 范例 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

and 条件
db.col.find({key1:value1, key2:value2}).pretty()

or 条件
db.col.find(
{
$or: [
{key1: value1}, {key2:value2}
]
}
).pretty()

and or 条件连用

db.col.find({"likes": {gt:50},or: [{"by": "菜鸟教程"},{"title": "MongoDB 教程"}]}).pretty()

limit和skip实现分页
db.COLLECTION_NAME.find().limit(NUMBER).skip(NUMBER)
sort 1 代表升序 -1 代表降序
b.COLLECTION_NAME.find().sort({KEY:1})

1、查看集合索引
db.col.getIndexes()

2、查看集合索引大小
db.col.totalIndexSize()

3、删除集合所有索引
db.col.dropIndexes()

4、删除集合指定索引
db.col.dropIndex("索引名称")

创建索引 1 升序 -1 降序
db.collection.createIndex(keys, options)
background 建索引过程会阻塞其它数据库操作
unique 是否唯一 默认false
name 索引名称

db.values.createIndex({open: 1, close: 1}, {background: true})

相关文章

网友评论

      本文标题:mongodb learn

      本文链接:https://www.haomeiwen.com/subject/ebpswqtx.html