一架梯子,一头程序猿,仰望星空!
Java MongoDB教程 > 内容正文

Java MongoDB快速入门


MongoDB是一个跨平台的,由C++ 语言编写,面向文档的NoSQL数据库,具备高性能、高可用和易扩展等特性,本教程从Java语言角度描述MongoDB的使用方式。

提示:本教程基于springboot的spring-boot-starter-data-mongodb包操作mongodb.

前置教程

导入依赖包

导入maven包

<dependency>
    <groupid>org.springframework.boot</groupid>
    <artifactid>spring-boot-starter-data-mongodb</artifactid>
</dependency>

MongoDB连接配置

application.properties

# Mongodb服务地址
spring.data.mongodb.host=localhost
# 端口
spring.data.mongodb.port=27017
# 账号
spring.data.mongodb.username=root
# 密码
spring.data.mongodb.password=123456
# 数据库
spring.data.mongodb.database=admin

提示:yaml格式配置类似。

引用MongoTemplate

@Autowired
private MongoTemplate mongoTemplate;

通过MongoTemplate可以直接对MongoDB进行各种CRUD操作。

导入MongoDB常用类

import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;

定义一个实体类

先定义一个Person类,后面针对这个类型的数据进行CRUD操作。

package org.spring.mongodb.example;

public class Person {

  private String id;
  private String name;
  private int age;

  public Person(String name, int age) {
    this.name = name;
    this.age = age;
  }

  public String getId() {
    return id;
  }
  public String getName() {
    return name;
  }
  public int getAge() {
    return age;
  }

  @Override
  public String toString() {
    return "Person [id=" + id + ", name=" + name + ", age=" + age + "]";
  }
}

创建文档

mongoTemplate.insert(new Person("Joe", 34));

查询文档

// 根据文档ID(id=60bc7dcbfd939959b5096ed0)查询一条数据,并将结果映射到person对象中
Person person = mongoTemplate.findById("60bc7dcbfd939959b5096ed0", Person.class);

// 根据条件(name = Joe)查询一条记录.
Person person2 = mongoTemplate.findOne(new Query(Criteria.where("name").is("Joe")), Person.class);

提示:MongoTemplate支持更多丰富的查询表达式,详情请参考后续章节。

更新文档

// 根据查询条件(name=Joe),更新一条数据,更新内容为age=35
mongoTemplate.updateFirst(query(where("name").is("Joe")), update("age", 35), Person.class);

删除文档

Person person = mongoTemplate.findById("60bc7dcbfd939959b5096ed0", Person.class);
mongoTemplate.remove(person);

提示:MongoTemplate更新操作请参考后续章节。