1、配置(集成):
一.pom.xml
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.10.RELEASE</version>
<relativePath/>
</parent>
<dependencies>
…
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-mongodb</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
</dependency>
…
</dependencies>
2.Mongo配置类
在config包中拷入配置文件夹mongodb
并在application-xxx.yml中配置:
spring:
data:
mongodb:
primary:
uri: mongodb://IP:PORT/DBNAME
authentication-database: false
三.使用
1.在使用的类中注入:
@Resource
private MongoTemplate mongoTemplate;
2.注意:mongo存储Decimal128,java运算用Decimal
@Autowired
private Decimal128ToBigDecimalConverter decimal128ToBigDecimalConverter;
例如:
Decimal a = decimal128ToBigDecimalConverter.convert((Decimal128)***)
3.Mongo的聚合查询:
Aggregation agg = Aggregation.newAggregation(
Aggregation.match(criteria),
Aggregation.group("ingredientName").sum("saleCupNum").as("saleNumber"),
Aggregation.project("ingredientName", "saleNumber").and("ingredientName").previousOperation(),
Aggregation.sort(Sort.Direction.DESC, "saleNumber")
);
AggregationResults<DataSalesStructureHistogramIngredientBo> outputType = mongoTemplate.aggregate(agg, "drink_day_statics_view", DataSalesStructureHistogramIngredientBo.class);
2、config.properis配置
spring.data.mongodb.uri=mongodb://localhost:27017/ttt #连接地址 没密码
spring.data.mongodb.authentication-database=false #没密码的意思
package com.sdyy.springboot.config;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.mongo.MongoProperties;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.data.mongodb.MongoDbFactory;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.SimpleMongoDbFactory;
import org.springframework.data.mongodb.core.convert.MappingMongoConverter;
import org.springframework.data.mongodb.core.convert.MongoConverter;
import com.mongodb.MongoClientOptions;
import com.mongodb.MongoClientURI;
import com.mongodb.ReadPreference;
import com.sdyy.common.mongodb.MongoTemplateHelper;
/**
* @author li
* @ClassName PrimaryMongoConfig
* @date: 2019年7月8日 下午12:55:33
*/
@Configuration
public class PrimaryMongoConfig {
@Autowired
private MappingMongoConverter customConverter;
@Primary
@Bean
@ConfigurationProperties(prefix = "spring.data.mongodb")
public MongoProperties primaryMongoProperties() {
return new MongoProperties();
}
@Bean(name = "mongoTemplate")
@Primary
public MongoTemplate primaryMongoTemplate() throws Exception {
return new MongoTemplate(primaryFactory(primaryMongoProperties()), (MongoConverter) customConverter);
}
@Bean
@Primary
public MongoDbFactory primaryFactory(MongoProperties mongoProperties) throws Exception {
System.out.println("uri:" + primaryMongoProperties().getUri());
MongoClientOptions.Builder options = new MongoClie