MongoDB数据库入门学习

MongoDB数据库入门学习

安装mongodb数据库
推荐使用mongodb的客户端Studio3t,安装此客户端
mongodb的入门基础概念
与关系型数据库对比如下:

SQL术语/概念MongoDB术语/概念解释说明
databasedatabase数据库
tablecollection数据库表/集合
rowdocument数据记录行/文档
columnfield数据字段/域
indexindex索引
table joins表连接(MongoDB不支持表连接)
primary keyprimary key主键,MongoDB自动在每个集合中添加_id的主键
  1. 一个momgodb实例可以创建多个数据库
  2. 一个数据库可以创建多个集合(SQL中一个数据库可以创建多个表)
  3. 一个集合可以包含多个文档(SQL中一个表可以有很多列)
    连接mongodb
    1.使用命令连接mangodb(windows下)
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://username:password@localhost 使用用户名为username,密码为password连接本地数据库27017端口
mongodb://localhost,localhost:27018,localhost:27019,连接单台主从服务器(集群),端口为270172701827019

2.使用studio3T连接
3.使用java程序连接
添加依赖

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

编写测试程序

@Test
public void test(){
//创建客户端连接
MongoClient mongoClient = new MongoClient("localhost","27017");
//或者是采用连接字符串
//MongoClientURI connectionURI = new MongoClientURI("mongodb://root:root@localhost:27017");
//MongoClient mongoClient = new MongoClient(connectionURI);
//连接数据库
MongoDatabase database = mongoClient.getDatabase("test");
//连接colleciton
MongoCollection<Document> collection = database.getCollecton("student");
//查询第一个文档
Document document = collection.find().first();
//得到文件内容  json串儿
String json = document.toJson();
System.out.println(json);
}

数据库
(mac下需要输入mongo命令进入数据库)
1.查询数据库
show dbs 查询全部的数据库
db 查询当前的数据库
2.创建数据库(切换数据库)
有该数据库则切换,没有该数据库则创建数据库
命令格式:

use DATABASE_NAME

例子:use test02
注意:新创建的数据库不显示,需要至少包括一个集合
3.删除数据库
命令格式:
db.dropDatabase()
例:删除test02数据库
先切换数据库:use test02
再执行删除:db.dropDatabase()
集合

  • 创建集合
    db.createCollection(name,options)
    name:新创建的集合名称
    options:创建参数(可以省略)
    2.删除集合
    db.collection.drop()
    例子:db.test.drop() 删除test集合
    文档
    1.插入文档
    mongodb中文档的格式是json格式的文档,包括两个key:_id和name
    _id:类型是ObjectId,作为文档的主键,是mongodb自己生成的对象id
    插入命令:db.collection_name.insert(document);
    例:
    db.test.insert({“name”:“张三”,“age”:18});
    2.更新文档
    db.collection.update(,,)
    query:相当于查询条件
    update:更新文档内容
    options :选项
    1>替换文档:将name为小明的文档替换为{“name”:“小红”,“age”:21}
    db.test.update({“name”:“小明”},{“name”:“小红”,“age”:21})
    2>使用set
    使用KaTeX parse error: Expected '}', got 'EOF' at end of input: …{"name":"小红"},{set:{“name”:“小黑”,“age”:12}},{multi:true})
    multi:为true表示更新所有匹配的文档,为false表示更新第一条文档
    3.删除文档
    db.test.remove()
    :删除条件,相当于sql中的where
    删除所有文档:db.test.remove({});
    删除指定的文档:db.test.remove({“name”:“小红”});
    4.查询文档
    db.collection.find(query,projection)
    query:查询条件,可不填
    projection:投影查询key,可不填
    查询所有文档:db.test.find();
    查询符合条件的文档:db.test.find({“name”:“小红”});
    查询符合条件的,按照指定的field输出的文档:db.test.find({“name”:“小红”},{name:1,age:0})
    1:表示需要查询出来的field
    0:表示不需要查询出来的field
    创建用户
    为了安全起见,需要在配置文件中打开mongodb的认证开关,即使用mongodb的用户名和密码登录之后才能操作数据库需要加上以下配置
    在mongo.conf的配置文件中加上auth true
    重启mongodb,即需要使用账号来进行登录
    使用命令行进行连接:
    mongo -u username -p password authenticationDatabase admin
    可以使用studio3T进行连接:

mongo>db.createUser(
{ user: “”,
pwd: “”,
customData: { },
roles: [
{ role: “”, db: “” } | “”,
… ]}
)
栗子:
use admin
db.createUser(
{
user:“root”,
pwd:“123”,
roles:[{role:“root”,db:“admin”}]
} )
内置角色如下:

  • 数据库用户角色:read、readWrite;
  • 数据库管理角色:dbAdmin、dbOwner、userAdmin;
  • 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
  • 备份恢复角色:backup、restore;
  • 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、
    dbAdminAnyDatabase
    超级用户角色:root
    查询用户
    查询当前库下的所有用户:
    show users
    删除用户:
    db.dropUser(“用户名”)
    栗子:db.dropUser(“root1”)
    修改用户:
    db.updateUser(
    “”,
    {
    customData : { },
    roles : [
    { role: “”, db: “” } | “”,
    … ],
    pwd: “”
    },
    writeConcern: { })
    栗子:修改root用户的角色为readWriteAnyDatabase
    use admin
    db.updateUser(“root”,{roles:[{role:“readWriteAnyDatabase”,db:“admin”}]})
    修改密码:
    db.changeUserPassword(“username”,“newPassword”)
    栗子:修改用户名为root的密码为123
    use admin
    db.changeUserPassword("root:,"123’);

认证登陆
在设置了账号密码之后,需要在mongod.conf的配置文件中添加认证,即可用账号和密码进行登陆
windows:
auth = true
mac:
security:
authorization: enabled

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值