MongoDB 简介 MongoDB 是一个基于分布式文件存储的数据库。由 C++语言编写。旨在为 WEB 应用 提供可扩展的高性能数据存储解决方案。 MongoDB 是一个跨平台的,面向文档的数据库,是当前 NoSQL 数据库产品中最热门 的一种。它介于关系数据库和非关系数据库之间,是非关系数据库当中功能最丰富,最像关 系数据库的产品。它支持的数据结构非常松散,是类似 JSON 的 BSON 格式,因此可以 存储比较复杂的数据类型。 Mongo 最大的特点是它支持的查询语言非常强大,其语法有点 类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且 还支持对数据建立索引。 它的特点是高性能、易部署、易使用,存储数据非常方便。MongoDB 有很多优点,但缺点也是很明显的,比如不能建立实体关系、没有事务管理机制等。
MongoDB 安装
MongoDB 提供了 Linux、Windows、OSX 等操作系统的安装包
操作系统版本的 MongoDB,安装步骤如下: 1. 进入官网:https://www.mongodb.com/download-center/community,下载 MongoDB 服务端安装包
安装完成后,在你的安装目录下的 data 的目录下,创建一个 db 文件(例如 F:\Program Files\MongoDB\data\db),用于数据库的存放。因为启动 MongoDB 服务之前必 须创建数据库存放的文件夹,否则命令不会自动创建,而且不能启动成功。
4 .配置环境变量(mongodb 安装目录下的 bin 目录)
打开命令窗口,输入:mongod --dbpath F:\Program Files\MongoDB\data\db(这 是自定义安装目录)命令启动 MongoDB 服务
启动 MongoDB 客户端,另外打开一个 cmd 命令窗口,执行 mongo 命令
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.mongo</groupId> <artifactId>mongodb</artifactId> <version>0.0.1-SNAPSHOT</version> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.0.RELEASE</version> <relativePath /> <!-- lookup parent from repository --> </parent> <properties> <!-- 声明项目配置依赖编码格式为 utf-8 --> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <fastjson.version>1.2.24</fastjson.version> </properties> <dependencies> <!--mongodb的依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> </dependency> </dependencies> <build> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build> </project>
spring.data.mongodb.uri=mongodb\://localhost\:27017/test
package com.tszr.mongo.entity; import java.util.Date; public class Book { private Integer id; private String name; private Integer price; private Date updateTime; public Book() { } public Book(Integer id, String name, Integer price, Date updateTime) { this.id = id; this.name = name; this.price = price; this.updateTime = updateTime; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getPrice() { return price; } public void setPrice(Integer price) { this.price = price; } public Date getUpdateTime() { return this.updateTime; } public void setUpdateTime(Date updateTime) { this.updateTime = updateTime; } }
package com.tszr.mongo.controller; import com.tszr.mongo.entity.Book; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import com.tszr.mongo.dao.MongoTestDao; @RestController public class MongoTestController { @Autowired private MongoTestDao mongoTestDao; @PostMapping("/mongo/save") public String saveObj(@RequestBody Book book) { return mongoTestDao.saveObj(book); } @GetMapping("/mongo/findAll") public List<Book> findAll() { return mongoTestDao.findAll(); } @GetMapping("/mongo/findOneByName") public Book findOneByName(@RequestParam String name) { return mongoTestDao.getBookByName(name); } @PostMapping("/mongo/update") public String update(@RequestBody Book book) { return mongoTestDao.updateBook(book); } @PostMapping("/mongo/delOne") public String delOne(int id) { return mongoTestDao.deleteBook(id); } }
package com.tszr.mongo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }
MongoDB 客户端 可选用NoSQL Manager for MongoDB。下载地址: https://www.mongodbmanager.com/download,
MongoDB 常用的一些 SQL 语法,具体示例代码如下: 1 查询 show dbs; 查看所有数据库 show tables; 查询表 db.user.find(); 查询 user 集合(表) db.user.findOne(); 查询第一条数据 db.user.find({"age":{$gt:10}}); 根据条件查询 show collections; 显示所有集合 db.user.find({"age":{$gt:"10"}}) 年龄大于 10 的数据
2 切换数据库 use test 3 增加 db.createCollection("test") 创建集合(创建数据库) db.user.insert({"id":"1","name":"beixi","age":"18"}) 直接创建表及插入数据 4 修改 db.user.update({"id":"1"},{$set:{"name":"jzj"}}) 5 删除 db.dropDatabase()(要先切换到要删除的数据库,然后执行该语句) db.user.drop() 删除集合/表 user db.user.remove({"name":"jzj"}) 删除某一条数据 db.user.remove({}) 删除表内所有数据