SpringBoot之mongoTemplate的使用

    springboot的版本1.5.17.RELEASE。html

一、mongo的IP和端口

    在resources下的application.properties中加入以下內容java

spring.data.mongodb.host=localhost
spring.data.mongodb.database=test
spring.data.mongodb.port=27017

二、引入springboot mongo依賴

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>

三、使用mongoTemplate

    通過步驟2和步驟1以後,能夠直接注入mongoTemplate了,不須要咱們再顯示的定義bean了。spring

    直接上代碼了,以下所示,包含了保存、查詢、分頁查詢、有條件的分頁查詢。mongodb

import java.util.Date;
import java.util.List;

import lombok.extern.slf4j.Slf4j;

import org.junit.Test;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Query;

import com.mjduan.springbootmongodb.domain.User;

/**
 * @author dmj1161859184@126.com 2018-11-27 21:19
 * @version 1.0
 * @since 1.0
 */
@Slf4j
public class MongoTemplateTest extends SpringbootMongodbApplicationTests {
    /**
     * properties中設置了屬性後,就會自動配置MontoTemplate
     */
    @Autowired
    private MongoTemplate mongoTemplate;

    @Test
    public void testFindAll() {
        List<User> users = mongoTemplate.findAll(User.class);
        System.out.println(users);
    }

    @Test
    public void testAddUser() {
        User user = new User();
        user.setAge(9);
        user.setAddress("address");
        user.setUsername("crupper");
        user.setDate(new Date());
        mongoTemplate.save(user);
    }

    @Test
    public void testPage() {
        Pageable pageable = new PageRequest(1, 3);
        Query query = new Query();
        query.with(pageable);
        List<User> users = mongoTemplate.find(query, User.class);
        log.info(users.toString());
    }

    @Test
    public void testPageSort() {
        Pageable pageable = new PageRequest(1, 3);
        Query query = new Query();
        query.with(pageable);
        query.with(new Sort(Sort.Direction.ASC, "age"));
        List<User> users = mongoTemplate.find(query, User.class);
        log.info(users.toString());
    }

    @Test
    public void testPageSortMulti() {
        Pageable pageable = new PageRequest(0, 6);
        Query query = new Query();
        query.with(pageable);
        query.with(new Sort(Sort.Direction.ASC, "age").and(new Sort(Sort.Direction.DESC, "date")));
        List<User> users = mongoTemplate.find(query, User.class);
        log.info(users.toString());
    }

    @Test
    public void testCount() {
        Query query = new Query();
        query.with(new Sort(Sort.Direction.ASC, "age").and(new Sort(Sort.Direction.DESC, "date")));
        long count = mongoTemplate.count(query, User.class);
        log.info(count + "");
    }
}

    SpringbootMongodbApplicationTests以下所示:springboot

import org.junit.Test;
import org.junit.runner.RunWith;

import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

@RunWith(SpringRunner.class)
@SpringBootTest
public class SpringbootMongodbApplicationTests {

    @Test
    public void contextLoads() {
    }
}

Reference

  1. https://www.cnblogs.com/jycboy/archive/2018/04/28/8969035.html
相關文章
相關標籤/搜索