CMS day02

MongoDB 入门

 安装 MongoDB 教程

链接: https://pan.baidu.com/s/1xxqoR9MagLX4AEcry5AVmg 提取码: j4cy 复制这段内容后打开百度网盘手机App,操作更方便哦

注意,cmd 命令 安装 mongodb  数据库时,需要使用cmd 管理员权限。

6.2 连接MongoDB 

在代码格式中连接MongoDB

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

1,命令格式

mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?
options]]

mongodb://固定前缀
username:账号,可不填
password:密码,可不填
host:主机名或ip地址,只有host主机名为必填项。
port:端口,可不填,默认27017
/database:连接某一个数据库
?options:连接参数,key/value对

例子:

mongodb://localhost连接本地数据库27017端口
mongodb://root:itcast@localhost使用用户名root密码为itcast连接本地数据库27017端口
mongodb://localhost,localhost:27018,localhost:27019,连接三台主从服务器,端口为27017、27018、27019

2, 使用mongodb自带的Javascript shell (mongo.exe) 连接

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

  •  cmd 进入bin 路径,执行mongo.exe 命令

此时就可以使用mongo 数据库的命令来操作了。

3,使用studio3T连接 

链接: https://pan.baidu.com/s/1xxqoR9MagLX4AEcry5AVmg 提取码: j4cy 复制这段内容后打开百度网盘手机App,操作更方便哦

4,使用Java 程序连接

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

添加依赖:

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

测试程序:

@Test
publicvoidtestConnection(){
//创建mongodb客户端
MongoClientmongoClient=newMongoClient("localhost",27017);
//或者采用连接字符串
//MongoClientURIconnectionString=new
MongoClientURI("mongodb://root:root@localhost:27017");
//MongoClientmongoClient=newMongoClient(connectionString);
//连接数据库
北京市昌平区建材城西路金燕龙办公楼一层   电话:400-618-9090
 
 
 
 
MongoDatabasedatabase=mongoClient.getDatabase("test");
//连接collection
MongoCollection<Document>collection=database.getCollection("student");
//查询第一个文档
DocumentmyDoc=collection.find().first();
//得到文件内容json串
Stringjson=myDoc.toJson();
System.out.println(json);
}

其实只需要将配置写在xml 配置文件即可。

 

6.3 数据库 操作

在命令行 操作mongo 数据库,先执行mongo.exe 命令后,便可以执行其他数据库命令操作。

1、查询数据库命令


show  dbs :查询全部数据库
db :显示当前数据库

2、创建数据库

命令格式:use  【数据库名字】

例子:use test01

效果:本来就有test01 数据库 的话,就切换到test01 数据库,没有就创建test01 数据库。

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

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

命令格式:db.dropDatabase()

 例子:删除 test01 数据库,先切换数据库:use test01, 再执行删除:db.dropDatabase()

6.4 集合

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

1,创建集合

执行命令:db.createCollection(name,options)

实际创建时可只传入name 参数即可
name:新创建的集合名称
options:创建参数

2,删除集合 

db.collection.drop()
例子:db.student.drop()删除student集合

6.5 文档

6.5.1 插入文档 

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

{"_id":ObjectId("5b2cc4bfa6a44812707739b5"),
"name":"黑马程序员"
}

插入命令:db.COLLECTIONNAME.insert(document) 

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

db.student.insert({"name":"黑马程序员","age":10}) 

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

6.5.2 更新文档

 

命令格式:

db.collection.update(
<query>,
<update>,
<options>
)
query:查询条件,相当于sql语句的where
update:更新文档内容
options:选项

1、替换文档
将符合条件"name":"北京黑马程序"的第一个文档替换为{"name":"北京黑马程序员","age":10}。 

 db.student.update({"name":"黑马程序员"},{"name":"北京黑马程序员","age":10})

同样,options 选项 参数不用传。 、

2,$set修改器

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

db.student.update({"name":"黑马程序员"},{$set:{"name":"北京黑马程序员","age":10}},{multi:true})

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

6.5.3 删除稳定 

命令格式:db.student.remove(<query>)
query:删除条件,相当于sql语句中的where

1、删除所有文档
db.student.remove({})
2、删除符合条件的文档
db.student.remove({"name":"黑马程序员"}) 

6.5.4 查询文档

命令格式:

db.collection.find(query,projection)
query:查询条件,可不填
projection:投影查询key,可不填

 1, 查询全部

db.student.find()

2、查询符合条件的记录
查询name等为"黑马程序员"的文档。 

db.student.find({"name":"黑马程序员"})

3、投影查询
只显示name和age两个key,_id主键不显示。 1 为显示,0 为不显示

db.student.find({"name":"黑马程序员"},{name:1,age:1,_id:0}) 

6.6 用户 

6.6.1创建用户

语法格式:

mongo>db.createUser(
 {user:"<name>",
    pwd:"<cleartextpassword>",
    customData:{<anyinformation>},
    roles:[
         {role:"<role>",db:"<database>"}|"<role>",
         ...
        ]}
)

例子:
创建root用户,角色为root

useadmin
db.createUser(
{
user:"root",
pwd:"123",
roles:[{role:"root",db:"admin"}]
}

内置角色如下:
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认证登录

为了安全需要,Mongodb要打开认证开关,即用户连接Mongodb要进行认证,其中就可以通过账号密码方式进行
认证。
1、在mono.conf中设置auth=true


2、重启Mongodb
3、使用账号和密码连接数据库
1)mongo.exe连接

mongo.exe‐uroot‐p123‐‐authenticationDatabase admin

2)Studio3T连接 

6.6.3 查询用户

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

6.6.4 删除用户

语法格式:db.dropUser("用户名")

例子:
删除test1用户
db.dropUser("test1")

6.6.5 修改用户

语法格式:

db.updateUser(
"<username>" ,
{
   customData : { <anyinformation>},
   roles : [
                  { role: "<role>", db: "<database>" ],
pwd: "<cleartext password>"
},
writeConcern:{ <write concern> })

例子:
先创建test1用户:

db.createUser(
     {
           user: "test1",
           pwd:"test1",
           roles:[{role:"root",db:"admin"}]
      }

修改test1用户的角色为readWriteAnyDatabase

use  admin
db.updateUser("test1",{roles:[{role:"readWriteAnyDatabase",db:"admin"}]})

6.6.6 修改密码 

语法格式:

db.changeUserPassword("username","newPasswd")

 例子:

修改test1用户的密码为123

use admin
db.changeUserPassword("test1","123")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

vegetari

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值