安装

yum

阿里云 镜像

​阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区 (aliyun.com)​

配置yum

安装(使用yum源安装) 在​​/etc/yum.repos.d​​ 创建一个​​mongodb-org.repo​​源文件

vi /etc/yum.repos.d/mongodb-org.repo

添加内容如下:(配置偶数版本,奇数版不适合生产使用)

[mongodb-org] 
name = MongoDB Repository
baseurl = https://mirrors.aliyun.com/mongodb/yum/redhat/$releasever/mongodb-org/3.6/x86_64/
gpgcheck = 1
enabled = 1
gpgkey = https://www.mongodb.org/static/pgp/server-3.6.asc

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),在未进入库之前输入:

DBQuery.shellBatchSize= 50

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