首页 > 编程笔记

Spring Boot集成MongoDB

MongoDB 是一个开源的 NoSQL 文档型数据库,使用类 JSON 结构代替传统的基于表结构的关系型数据库。spring-boot-starter-data-mongodb 模块提供了可以操作 MongoDB 的 MongoTemplate 模板类。

集成MongoDB

Spring Boot 自动配置 org.springframework.data.mongodb.MongoDatabaseFactory 类,默认连接 mongodb://localhost/test 库。同样,也可以自定义一个 MongoClient 来代替 MongoDatabaseFactory 类。

下面给出一个集成 MongoDB 操作的简单示例。

(1)在 application.yml 配置文件中添加 MongoDB 配置,具体代码如下:

spring:
  data:
    mongodb:
      host: localhost
      port: 27017
      database: user
      username: root
      password: test1111
      authentication-database: admin

(2)注入 MongoTemplate 实例,代码如下:
@RestController
@RequestMapping("/hi")
public class HiController {
    @Autowired
    private MongoTemplate mongoTemplate;        //自动注入MongoTemplate
    @GetMapping("/mongo/add")
    public Document mongoAdd(String id) {
        BasicDBObject db = new BasicDBObject();
        db.put("_id", new ObjectId(id));
        //插入操作
        mongoTemplate.insert(db, "pages");
        MongoCollection<Document> collection = mongoTemplate.getCollection("user");
        Document document = collection.find(db).first();
        return document;
    }
    @GetMapping("/mongo/query")
    public Document mongoQuery(String id) {
        BasicDBObject db = new BasicDBObject();
        db.put("_id", new ObjectId(id));
        MongoCollection<Document> collection = mongoTemplate.getCollection("user");
        //查询操作
        Document document = collection.find(db).first();
        return document;
    }
}
访问接口 http://localhost:8080/hi/mongo/query?id=5a717aa60837d974f4b4a5,即可查询相关的数据。

优秀文章