mongodb基础操作

mongodb添加用户

只在admin数据库可用
db.createUser(
… {
… user: “admin”,
… pwd: “###”,
… roles: [ { role: “userAdminAnyDatabase”, db: “admin” } ]
… }
… )

只在admin数据库可用
db.createUser(
… {
… user: “root”,
… pwd: “####”,
… roles: [ { role: “root”, db: “admin” } ]
… }
… )

#读写帐号
db.createUser(
… {
… user: “eam”,
… pwd: “#####”,
… roles: [{ role: “dbOwner”, db: “eamdb” } ]
… }
… )

db.createUser(
… {
… user: “eamtest”,
… pwd: “#####”,
… roles: [{ role: “dbOwner”, db: “eamtestdb” } ]
… }
… )

删除用户
db.dropUser(“eam”)
db.dropUser(“root”)

进入该数据库下的用户
show users

修改用户密码
db.changeUserPassword(“要修改密码的用户名”,”新密码”)
修改用户角色(有问题)
db.updateUser( “test1”,
{
roles:[
{role:“read”,db:“admin”}
] ,
pwd:“test1password”
}
)

 用户角色
数据库用户角色
read:允许用户读取指定的数据库
readWrite:允许用户读写指定数据库
数据库管理角色
dbAdmin:允许用户在指定数据库执行管理函数,创建索引,删除索引,查看统计.
userAdmin:允许用户向system.users集合写入,可以在指定数据库创建删除管理账号
dbOwner:指定数据库最大的权限,是readWrite+dbAdmin+userAdmin的和。
群集管理角色(只在admin数据库可用)
clusterAdmin:用户所有分片和复制集相关函数的管理权限
clusterManager:管理和监控群集。
clusterMonitor:只能访问监控工具。
hostManager:监视和管理。
备份和还原角色
backup
restore
所有角色(只在admin数据库可用)
readAnyDatabase:赋予用户所有数据库的读权限
readWriteAnyDatabase:赋予用户所有数据库的读写权限
userAdminAnyDatabase:赋予所有数据库的useradmin权限
dbAdminAnyDatabase:赋予所有数据库的dbadmin权限。
超级角色(只在admin可用)
root:超级账号,超级权限

############
创建数据库
use eamdb
switched to db eamdb

show tables

show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
runoob 0.000GB
db
eamdb
db.eamdb.insert({“name”:“菜鸟教程”})
WriteResult({ “nInserted” : 1 })
show dbs
admin 0.000GB
config 0.000GB
eamdb 0.000GB
local 0.000GB
runoob 0.000GB

每个数据库单独的用户体系
db.auth(“admin”,"###")
db.auth(“eam”,"###")

配置文件

db.eamdb.insert({“a”:1,“b”:2})
dbpath=/home/mongodb3/data
logpath=/var/log/mongodb/mongodb.log
pidfilepath=/var/log/mongodb/master.pid
directoryperdb=true
logappend=true
bind_ip=127.0.0.1
port=27017
fork=true

dbpath=/home/mongodb3/data
#数据库日志存放目录
logpath=/home/mongodb3/logs/mongodb.log
#以追加的方式记录日志
logappend=true
#端口号 默认为27017
port=27017
#以后台方式运行进程
fork=true
#开启用户认证
auth=true
#关闭http接口,默认关闭http端口访问
nohttpinterface=true
#mongodb所绑定的ip地址
bind_ip=127.0.0.1
#启用日志文件,默认启用
journal=true

绑定其他地址可以访问,否则外网无法访问

bind_ip=localhost,172.XXX.XXX.XXX

根据配置文件启动

./mongod -f /home/mongodb3/mongodb.conf

关闭服务

./mongod --shutdown --dbpath /home/mongodb3/data

更改端口以后,mongo需要调整连接
./mongo 127.0.0.1:27117/eamdb

./mongo 127.0.0.1:27117/admin

切换admin账号:use admin
使用关闭方法:db.shutdownServer()

关闭服务
1、Crtl+C 关闭或关闭命令窗口
2、数据库命令关闭先登录数据库:mongo
切换admin账号:use admin
使用关闭方法:db.shutdownServer()

3、使用 mongod 命令关闭bin目录下执行,下面接的是数据目录
./mongod --shutdown --dbpath=/usr/mongodb/mongodb/data/db
4、kill掉进程,不安全的关闭方式
查看进程:ps -ef|grep mongo
kill -9 2728

##############用户登入

需要用户才能登入
./mongod -f /home/mongodb3/mongodb.conf --auth

登入操作页面

./mongo 127.0.0.1:27117/eamdb

./mongo 127.0.0.1:27117/admin

db.auth(“eam”,"###")

db.auth(“admin”,"###")

./mongo -u eam -p ###127.0.0.1:27117/eamdb

#################操作
创建数据库
use plan
show dbs

show tables

删除数据库

新增集合

db.createCollection(“plan”) # 先创建集合,类似数据库中的表
db.createCollection(“testtable”)
删除集合
db.eamdb.drop()
db.mongoTest.drop()

插入文档

db.testtable.insert({title: ‘MongoDB 教程’,
description: ‘MongoDB 是一个 Nosql 数据库’,
by: ‘菜鸟教程’,
url: ‘http://www.runoob.com’,
tags: [‘mongodb’, ‘database’, ‘NoSQL’],
likes: 100
})

db.testtable.insert({title: ‘MongoDB 教程’,
description: ‘MongoDB 是一个 Nosql 数据库’,
by: ‘菜鸟教程’,
url: ‘http://www.runoob.com’,
tags: [‘mongodb’, ‘database’, ‘NoSQL’],
likes: 200
})

查看已经插入的文档
db.mongoTest.find()
db.planEntity.find().pretty()
db.testtable.find()
pretty() 方法以格式化的方式来显示所有文档
db.testtable.find().pretty()

findOne() 方法,它只返回一个文档。
db.testtable.findOne()

更新文档
db.testtable.update({‘title’:‘MongoDB 教程’},{$set:{‘title’:‘MongoDB’}})

删除文档
db.testtable.remove({‘title’:‘MongoDB 教程’})

查询

db.testtable.find({“by”:“菜鸟教程”}).pretty()

and 语句

db.testtable.find({“by”:“菜鸟教程”, “title”:“MongoDB 教程”}).pretty()

OR 条件
db.testtable.find({$or:[{“by”:“菜鸟教程”},{“title”: “MongoDB 教程”}]}).pretty()

db.col.find({likes : {$gt : 100}})

=
db.col.find({likes : {$gte : 100}})

<
db.col.find({likes : {$lt : 150}})

<=
db.col.find({likes : {$lte : 150}})

区间
db.col.find({likes : {$lt :200, $gt : 100}})


如果想获取 “col” 集合中 title 为 String 的数据,你可以使用以下命令:
db.col.find({“title” : {$type : ‘string’}})

limit()方法接受一个数字参数,该参数指定从MongoDB中读取的记录条数。

skip方法同样接受一个数字参数作为跳过的记录条数。
db.col.find({},{“title”:1,_id:0}).limit(1).skip(1)

sort() 方法可以通过参数指定排序的字段,并使用 1 和 -1 来指定排序的方式,其中 1 为升序排列,而 -1 是用于降序排列。
db.col.find({},{“title”:1,_id:0}).sort({“likes”:-1})

语法中 Key 值为你要创建的索引字段,1 为指定按升序创建索引,如果你想按降序来创建索引指定为 -1 即可。
db.col.createIndex({“title”:1})

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值