安装
yum
阿里云 镜像
阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区 (aliyun.com)
配置yum
安装(使用yum源安装)
在/etc/yum.repos.d
创建一个mongodb-org.repo
源文件
添加内容如下:(配置偶数版本,奇数版不适合生产使用)
yum makecache-------------建立元数据
yum install -y mongodb-org
基本操作------可以用tab键补全命令
启动
systemctl start mongod
登录
mongo
登出
exit 【注意】不能使用quit
1.登录: mongo -u root -p password ip[:port]/验证库名
2.查询所有库: show dbs (只会显示已经有表的数据库,空的库不会显示)
3.进入指定库: use XXX (use 一个不存在的库 -----会直接创建这个库)
4.查询库中所有表: show tables
5.查询表中所有数据: db.XXX.find();
6.where条件查询:db.XXX.find({字段:""})
7.多字段where查询:db.XXX.find({字段:"",字段:""})
8.查询某个字段(不select *):db.XXX.find({字段:""},{字段:1})(1只用于占位,输入啥都行)
9.模糊查询:db.XXX.find({"字段":/XXX/})
10.模糊查询,但首位指定,比如查询1开头的:db.XXX.find({"字段":/^1/})
11.修改默认返回条数(默认太小,否则频繁it),在未进入库之前输入:
12.db -------显示当前所在的库
13.use 可以进入指定库 也可以用来创库
14.建表
ues db1
db.createCollection("表名") ---------------必须要有 引号 “ ”
15.插入数据
use
db.表名.insert({name:"hg",age:"18"})
概念对比
mongodb对象操作
mongo mysql
库 -----> 库
集合 -----> 表
文档 -----> 数据行
文档操作
数据录入: (可以使用循环 也可以 使用函数)
for(i=0;i<10000;i++){db.log.insert({"uid":i,"name":"mongodb","age":6,"date":new
Date()})}
查询数据行数:
> db.log.count()
全表查询:
> db.log.find()
每页显示50条记录:
> DBQuery.shellBatchSize=50;
按照条件查询
> db.log.find({uid:999}) ------------注意 里面 有{}
以标准的json格式显示数据
> db.log.find({uid:999}).pretty()
{
"_id" : ObjectId("5cc516e60d13144c89dead33"),
"uid" : 999,
"name" : "mongodb",
"age" : 6,
"date" : ISODate("2019-04-28T02:58:46.109Z")
}
删除集合中所有记录
app> db.log.remove({})
查看集合存储信息
app> db.log.totalSize() //集合中索引+数据压缩存储之后的大小
(上面的log 是集合(表)的名字)
权限管理
用户创建
注意
验证库: 建立用户时use到的库,在使用用户时,要加上验证库才能登陆。
对于管理员用户,必须在admin下创建.
\1. 建用户时,use到的库,就是此用户的验证库
\2. 登录时,必须明确指定验证库才能登录
\3. 通常,管理员用的验证库是admin,普通用户的验证库一般是所管理的库设置为验证库
\4. 如果直接登录到数据库,不进行use,默认的验证库是test,不是我们生产建议的.
\5. 从3.6 版本开始,不添加bindIp参数,默认不让远程登录,只能本地管理员登录。
用户创建语法
use admin
db.createUser
({
user: "name",
pwd: "cleartext password",
roles: [
{ role: "role",
db: "database" }
]
})
基本语法说明:
user:用户名
pwd:密码
roles:
role:角色名
db:作用对象
🟩role:root, readWrite,read
用户管理例子
创建超级管理员:管理所有数据库(必须use admin再去创建)
$ mongo
use admin
db.createUser(
{
user: "root",
pwd: "123456",
roles: [ { role: "root", db: "admin" } ]
}
)db.c
登录验证
本机 mongo -uroot -proot123 admin
远程 mongo -uroot -proot123 127.0.0.1/admin
查询mongodb中的用户信息
mongo -uroot -proot123 127.0.0.1/admin
db.system.users.find().pretty()
.pretty() 是为了让信息格式化展示
删除用户(❗root身份登录,use到要删除的用户的验证库)
mongo -uroot -proot123 127.0.0.1/admin
use oldliu
db.dropUser("app02")
用户管理注意事项
\1. 建用户要有验证库,管理员的验证库是admin,普通用户的是该用户管理的库
\2. 登录时,注意验证库
mongo -uapp01 -papp01 127.0.0.1:27017/oldliu