项目学习第三天MongoDB 文档型数据库
MongoDB简介
MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
MongoDB体系结构
MongoDB 的逻辑结构是一种层次结构。主要由: 文档(document)、集合(collection)、数据库(database)组成的。逻辑结构是面向用户的,用户使用 MongoDB 开发应用程序使用的就是逻辑结构。
(1)MongoDB 的文档(document),相当于关系数据库中的一行记录。
(2)多个文档组成一个集合(collection),相当于关系数据库的表。
(3)多个集合(collection),逻辑上组织在一起,就是数据库(database)。
(4)一个 MongoDB 实例支持多个数据库(database)。
Docker 环境下MongoDB安装
在宿主机创建mongo容器
docker run ‐di ‐‐name=tensquare_mongo ‐p 27017:27017 mongo
远程登陆
mongo 192.168.66.128
这里访问地址可以在个人的docker中用命令ifconfig查看
Java操作MongoDB
在对应工程中引入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring‐boot‐starter‐data‐mongodb</artifactId>
</dependency>
<dependency>
<groupId>com.tensquare</groupId>
<artifactId>tensquare_common</artifactId>
<version>1.0‐SNAPSHOT</version>
</dependency>
创建测试类
public class MongoDemo {
public static void main(String[] args) {
MongoClient client=new MongoClient("192.168.184.134");
//创建连接
MongoDatabase spitdb = client.getDatabase("spitdb");
//打开数据库
MongoCollection<Document> spit = spitdb.getCollection("spit");
// 获取集合
FindIterable<Document> documents = spit.find();
//查询记录获取文档集 合
for(Document document:documents){
System.out.println("内容:"+document.getString("content"));
System.out.println("用户ID:"+document.getString("userid"));
System.out.println("浏览量:"+document.getInteger("visits"));
}
client.close();//关闭连接
}
}
你的工程是如何操作MongoDB的?
spring data mongodb。
在项目的哪些场景下使用MongoDB ?
评论,回复等(数据量大,价值不是特别高的)。
为什么使用Mongodb而不使 用mysql?
当数据量较大且价值较低的数据,为了减轻mysql的压力,我们使用 mongodb。