1、pom依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
2、属性文件
# MONGODB (MongoProperties)
spring.data.mongodb.authentication-database=认证的数据库
spring.data.mongodb.database=要使用的数据库
#spring.data.mongodb.field-naming-strategy= # Fully qualified name of the FieldNamingStrategy to use.
#spring.data.mongodb.grid-fs-database= # GridFS database name.
spring.data.mongodb.host=xx.xxx.xxx.xxx
spring.data.mongodb.username=账户名
spring.data.mongodb.password=密码
spring.data.mongodb.port=27017
mongo.collection=数据库中的集合
#spring.data.mongodb.repositories.type=
#spring.data.mongodb.uri=mongodb://47.114.132.102/test # Mongo database URI. When set, host and port are ignored.
3、使用方式
3.1 MongoRepository
自定义接口实现MongoRepository

3.2 MongoRepository
这个比较简单,直接注入即可
4、工具类
@Component
public class MongoKit {
@Autowired
private OrderListMongoRepository demoInfoRepository;
@Autowired
private MongoTemplate mongoTemplate;
public String save() {
List<OrderChildListDO> childs = new ArrayList<OrderChildListDO>();
OrderChildListDO childListDO = new OrderChildListDO();
childListDO.setId(0);
childListDO.setSkuId("12312");
childListDO.setItemId("123412");
childListDO.setUserId("234das2365462");
childListDO.setOrderId("2342352345");
childListDO.setItemImage("34523rtegy");
childListDO.setItemTitle("就合计合计撒娇看到了卡商家拉萨到今年");
childListDO.setOrderChildId("sdfswdfgaas");
childListDO.setItemCount(0);
childListDO.setAfterStatus(0);
childListDO.setItemTotalBuyPrice(0);
childListDO.setItemSingleBuyPrice(0);
childListDO.setItemTotalSellPrice(0);
childListDO.setItemSingleSellPrice(0);
childs.add(childListDO);
OrderMainListDO orderMainListDO = new OrderMainListDO();
orderMainListDO.setId(223);
orderMainListDO.setUserId("afdaadsasadsa");
orderMainListDO.setOrderId("23523452311asedasq");
orderMainListDO.setPostFee(0);
orderMainListDO.setItemFrom(0);
orderMainListDO.setOrderStatus(0);
orderMainListDO.setOrderTotalAmount(0);
orderMainListDO.setCreateTime(new Date());
orderMainListDO.setChildOrders(childs);
OrderMainListDO resuilt = demoInfoRepository.save(orderMainListDO);
return "ok";
}
public String delete(String mongoId) {
demoInfoRepository.deleteById(mongoId);
return "ok";
}
/**
* 通过mongoTemplate查
*/
public List<OrderMainListDO> listByTemplate(String title) {
Query query = new Query();
Pattern pattern = Pattern.compile(
"^.*" + JSON.parseObject(title).getString("title") + ".*$", Pattern.CASE_INSENSITIVE);
query.addCriteria(Criteria.where("childOrders.itemTitle").regex(pattern));
List<OrderMainListDO> list = mongoTemplate.find(query.with(Sort.by(Sort.Direction.DESC, "createTime")), OrderMainListDO.class);
return list;
}
public List<OrderMainListDO> listByRepository(String title) {
Sort sort = Sort.by(Sort.Direction.DESC, "createTime");
OrderMainListDO listDO = new OrderMainListDO();
listDO.setOrderId(JSON.parseObject(title).getString("title"));
ExampleMatcher matcher = ExampleMatcher.matching()
.withStringMatcher(ExampleMatcher.StringMatcher.CONTAINING) //改变默认字符串匹配方式:模糊查询
.withIgnoreCase(true) //改变默认大小写忽略方式:忽略大小写
.withMatcher("orderId", ExampleMatcher.GenericPropertyMatchers.contains()) //采用“包含匹配”的方式查询
.withIgnorePaths("pageNum", "pageSize"); //忽略属性,不参与查询;
Example<OrderMainListDO> example = Example.of(listDO, matcher);
List<OrderMainListDO> list = demoInfoRepository.findAll(example);
return list;
}
public PageImpl<OrderMainListDO> pageByTemplate(String title) {
Pattern pattern = Pattern.compile(
"^.*" + JSON.parseObject(title).getString("title") + ".*$", Pattern.CASE_INSENSITIVE);
Query query = Query.query(Criteria.where("childOrders.itemTitle").regex(pattern));
// 每页五个
Pageable pageable = PageRequest.of(0, 5); // get 5 profiles on a page
query.with(pageable);
// 排序
query.with(Sort.by(Sort.Direction.DESC, "createTime"));
List<OrderMainListDO> items = mongoTemplate.find(query, OrderMainListDO.class, "orders");
// System.out.println("stories:" + stories.size() + " count:" + count);
PageImpl<OrderMainListDO> result = (PageImpl<OrderMainListDO>) PageableExecutionUtils.getPage(items, pageable, () -> 0);
return result;
}
public String pageByByRepository(String title) {
Sort sort = Sort.by(Sort.Direction.DESC, "createTime");
PageRequest pageRequest = PageRequest.of(0, 10, sort);
OrderMainListDO listDO = new OrderMainListDO();
listDO.setOrderId(JSON.parseObject(title).getString("title"));
ExampleMatcher matcher = ExampleMatcher.matching()
.withStringMatcher(ExampleMatcher.StringMatcher.CONTAINING) //改变默认字符串匹配方式:模糊查询
.withIgnoreCase(true) //改变默认大小写忽略方式:忽略大小写
.withMatcher("orderId", ExampleMatcher.GenericPropertyMatchers.contains()) //采用“包含匹配”的方式查询
.withIgnorePaths("pageNum", "pageSize"); //忽略属性,不参与查询;
Example<OrderMainListDO> example = Example.of(listDO, matcher);
Page<OrderMainListDO> all = demoInfoRepository.findAll(example, pageRequest);
return null;
}
}