新建一个基本的 Spring-boot 项目
导入依赖
<dependency>
	<groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
配置数据源
在 Resource 文件中的 application.properties 添加数据源信息(ip:端口号/数据库名称)
spring.data.mongodb.uri=mongodb://localhost:27017/test
如果数据库有密码
spring.data.mongodb.uri=mongodb://user:password@localhost:27017/test
新建 MongoDB 实体类(与数据库信息相对应)
package com.yufh.springbootmongodb.entity;
import lombok.Data;
import org.springframework.data.annotation.Id;
/**
 * @author yufh
 * @describe 数据库实体类
 * @date 2019/8/12
 */
@Data   //注解提供get/set方法
public class User {
    @Id   //主键字段
    private String id;
    private String name;
    private String age;
}
package com.yufh.springbootmongodb.service;
import com.yufh.springbootmongodb.entity.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;
/**
 * @author yufh
 * @describe MongoTemplate操作数据库
 * @date 2019/8/12
 */
@Service
public class mongoTemplateDemo {
    @Autowired
    MongoTemplate mongotemplate;
    public String insert() {
        //自己定义数据信息
        User user = new User();
        user.setId("4");
        user.setName("sss");
        user.setAge("1211");
        mongotemplate.save(user);
        return "保存数据";
    }
    public String query() {
        Query query = new Query();
        query.addCriteria(Criteria.where("id").is("2"));
        String name = mongotemplate.findOne(query, User.class).getName();
        return name;
    }
}
新建定义 repository 接口继承 mongoRepository 接口
package com.yufh.springbootmongodb.service;
import com.yufh.springbootmongodb.entity.User;
import org.springframework.data.mongodb.repository.MongoRepository;
import org.springframework.stereotype.Service;
public interface UserRepository extends MongoRepository<User, String> {
     User findByName(String name);
     void deleteById(String id);
}
使用新建接口
package com.yufh.springbootmongodb.service;
import com.yufh.springbootmongodb.entity.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
 * @author yufh
 * @describe
 * @date 2019/8/12
 */
@Service
public class mongoRepositoryDemo {
    @Autowired
    UserRepository userRepository;
    public User queryUserByname() {
        return userRepository.findByName("yyy");
    }
    public User insertUser(){
        User user = new User();
        user.setId("3");
        user.setName("qqq");
        user.setAge("2322");
        userRepository.save(user);
        return user;
    }
}
package com.yufh.springbootmongodb;
import com.yufh.springbootmongodb.service.mongoRepositoryDemo;
import com.yufh.springbootmongodb.service.mongoTemplateDemo;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import javax.annotation.Resource;
@RunWith(SpringRunner.class)
@SpringBootTest
public class SpringbootMongodbApplicationTests {
	@Resource
	mongoTemplateDemo mongoTemplateDemo;
	@Resource
	mongoRepositoryDemo mongoRepository;
	@Test
	public void insertTest1() {
		mongoTemplateDemo.insert();
	}
	@Test
	public void  queryTest1(){
		System.out.println(mongoTemplateDemo.query());
	}
	@Test
	public void queryTest2() {
		System.out.println(mongoRepository.queryUserByname());
	}
	@Test
	public void insertTest2() {
		System.out.println(mongoRepository.insertUser());
	}
}
注意:
SpringBoot 项目的 Bean 装配默认规则是根据 Application 类所在的包位置从上往下扫描! “Application 类”是指 SpringBoot 项目入口类。这个类的位置很关键:
将接口与对应的实现类放在与 application 启动类的同一个目录或者他的子目录下,这样注解可以被扫描到。
也可以指定扫描包的路径