typora-copy-images-to: mongodb_img

1 mongodb介绍

2下载mongodb

MongoDB 提供了可用于 32 位和 64 位系统的预编译二进制包,你可以从MongoDB官网下载安装。官方地址:https://www.mongodb.com/

本教程下载3.4版本:http://downloads.mongodb.org/win32/mongodb-win32-x86_64-2008plus-ssl-v3.4-

3安装mongodb

在win7系统安装mongodb需要vc++运行库,如果没有则会提示“无法启动此程序,因为计算机中丢失

VCRUNTIME140.dll”。

去网上下载或使用360安装:

7d1e5fd8183bcd583dfc3a731160fc57_MD5

 

运行  mongodb-win32-x86_64-2008plus-ssl-v3.4-latest-signed.msi

19b68c3bc139740487c58dc3c239ce1e_MD5

 

435fee8081d342dbb97d4c699844df03_MD5

2059e1909b037f2961075e518766eb3b_MD5

 

4 启动mongodb

5b7de630ebfae84350f2915847b9cef8_MD5

创建几个文件夹具体如下:数据库路径(data目录)、日志路径(logs目录)和日志文件(mongo.log文件)

创建配置文件mongo.conf,文件内容如下:

f4349dbacae815c306f6747841900085_MD5

 

安装 MongoDB服务

通过执行bin/mongod.exe,使用—install选项来安装服务,使用—config选项来指定之前创建的配置文件。     cmd进入d:\MongoDB\Server\3.4\bin

19cd3b9c1e02021a52c04314dd02d57a_MD5

 

启动MongoDB服务

c3f2d01a7bb6d7beb072d08319278402_MD5

关闭MongoDB服务

245de23983a69c4f16724af9cdd01805_MD5

 

移除MongoDB服务

089b90723fb93aa4f712f2ec3262890a_MD5

 

启动mongodb服务,

命令执行后,浏览器中输入http://127.0.0.1:27017看到如下界面即说明启动成功

f734e08be432f7789d7ec3469ff0ee30_MD5

 

04efdeec32f113d2395e6bbfacb61914_MD5

出现下图说明安装成功

3c7549ed33efbeca965f173412d46faa_MD5

也可以通过bin目录下的mongo.exe连接mongodb

5 安装studio3t

studio3t是mongodb优秀的客户端工具。官方地址在https://studio3t.com/

ae478f40c7eb4d912321ccb66b4fe2c1_MD5

下载studio3t

fdf91882faa67b1c9068400717de8541_MD5

安装并启动:

4185cf66106634d80178c26d81f44e90_MD5

创建一个新连接:

83b140ba707ae06f37395d83e9cf49bb_MD5

cfbe696cee3ef87974f16a019543e072_MD5

填写连接信息:

连接成功:

c3825be00cc16afc532f7b37f6b526f8_MD5

 

修改字体:

默认Studio3t的字体太小,需要修改字体: 点击菜单:Edit-Preferences

3ec2f0cb35e516c48e9a7e5c99a5d78b_MD5

 

6 mongodb入门

6.1 基础概念

在mongodb中是通过数据库、集合、文档的方式来管理数据,下边是mongodb与关系数据库的一些概念对比:

image.png

12bf7816c71707483d7a6cfd509ae110_MD5

 

1、一个mongodb实例可以创建多个数据库

2、一个数据库可以创建多个集合

3、一个集合可以包括多个文档。

6.2 连接mongodb

0f8475d2dff18f1139044f06311bcdd8_MD5

mongodb的使用方式是客户服务器模式,即使用一个客户端连接mongodb数据库(服务端)。   

1、 命令格式

mongodb:// 固定前缀

username:账号,可不填

password:密码,可不填

host:主机名或ip地址,只有host主机名为必填项。

port:端口,可不填,默认27017

/database:连接某一个数据库

?options:连接参数,key/value对

例子:

7ed11ceb6841ed40a4040d7e110ca97d_MD5

2、使用mongodb自带的javascript shell(mongo.exe)连接

167ff5b04acf6a5174343aad1a56090e_MD5

windows版本的mongodb安装成功,在安装目录下的bin目录有mongo.exe客户端程序

cmd状态执行mongo.exe:

7a0bcea87a2cbd09527c5f48a20ede80_MD5

此时就可以输入命令来操作mongodb数据库了,javascript shell可以运行javascript程序。

3、使用studio3T连接

4、使用java程序连接

fcb9b78df9db7835e727fc3ff85138ba_MD5

<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo‐java‐driver</artifactId>
<version>3.4.3</version>
</dependency>
 

详细参数:http://mongodb.github.io/mongo-java-driver/3.4/driver/tutorials/connect-to-mongodb/     添加依赖:

测试程序:

e8d76b7051dcf24294ec56626a859e7c_MD5

9e89fc8ba511d5bbaafc70a8be1378ce_MD5

6.3 数据库

1、查询数据库

show dbs 查询全部数据库

db 显示当前数据库

2、创建数据库

命令格式: c0b5fba916e106b21d25630376e85972_MD5 例子:

use test02

有test02数据库则切换到此数据库,没有则创建。

注意:

新创建的数据库不显示,需要至少包括一个集合。

3、删除数据库(慎用!!!)

命令格式: 3898352f729a8888479a508e5fbb5e99_MD5 例子:

删除test02数据库

先切换数据库:use test02

再执行删除:db.dropDatabase()

6.4 集合

集合相当于关系数据库中的表,一个数据库可以创建多个集合,一个集合是将相同类型的文档管理起来。

1、创建集合

f05a52e20c3c9d43101547f4bf31d86c_MD5

 

2、删除集合

ed658c6fe9b6e5d18f0b4cf807d8c334_MD5

6.5 文档

6.5.1 插入文档

mongodb中文档的格式是json格式,下边就是一个文档,包括两个key:_id主键和name

14717773be10d2051ea833629221855a_MD5

 

插入命令:

d777c74f26dba7cf6c7509a0940bc2a1_MD5

每个文档默认以_id作为主键,主键默认类型为ObjectId(对象类型),mongodb会自动生成主键值。 

例子:

ccffa30ade7893671366e9c7a67975bd_MD5

注意:同一个集合中的文档的key可以不相同!但是建议设置为相同的。

6.5.2 更新文档

命令格式:

70f247f2a143222e8aa0d02693932ce3_MD5

1、替换文档

将符合条件       “name”:“北京HM程序”的第一个文档替换为{“name”:“北京HM程序员”,“age”:10}。

482287fed7f5ff71140311d5a4fa9c97_MD5

 

2、$set修改器

使用$set修改器指定要更新的key,key不存在则创建,存在则更新。将符合条件 “name”:“北京HM程序”的所有文档更新name和age的值。

1c2669c97a2a1d78cda0a84715d79708_MD5

multi:false表示更新第一个匹配的文档,true表示更新所有匹配的文档。

6.5.3 删除文档

命令格式:

1b46484b9928b9fe03eb5b5c22e0084b_MD5

 

1、删除所有文档

db.student.remove({}) 

2、删除符合条件的文档

db.student.remove({“name”:“HM程序员”})

6.5.4 查询文档

命令格式:

cca5a76b052325b7af286cf971c3a342_MD5

 

1、 查询全部

312b1d958d5571640a14ccb72274445e_MD5

2、查询符合条件的记录

查询name等为”HM程序员”的文档。

f0024fb4225b103a936e18ebed53de83_MD5

 

3、投影查询

只显示name和age两个key,_id主键不显示

5f37251b1b2769e9ce80bc266f4713b6_MD5

 

6.6 用户

6.6.1 创建用户

语法格式:

45ecb31595f685b27bdfb906e7fc83d9_MD5

 

例子:

创建root用户,角色为root

707fa2c6b6d53dd27d489cc9707bd461_MD5

 

内置角色如下:

1. 数据库用户角色:read、readWrite;

2. 数据库管理角色:dbAdmin、dbOwner、userAdmin;

3. 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;

4. 备份恢复角色:backup、restore;

5. 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、

dbAdminAnyDatabase

6. 超级用户角色:root

6.6.2 查询用户

查询当前库下的所有用户:

show users

6.6.3 删除用户

语法格式:

db.dropUser(“用户名”)

例子:

删除root1用户

db.dropUser(“root1”)

6.6.4 修改用户

语法格式:

44c26b8003fdef7cae3834e164a3a707_MD5

 

例子:

修改root用户的角色为readWriteAnyDatabase

fed358c7338104d2e045ca6d151a2415_MD5

 

6.6.5 修改密码

语法格式:

1f18f8842299a5940776aa2413b81228_MD5

 

修改root用户的密码为123

e4db6529491d594d443a0c6bf88c4bee_MD5