1.查询条件
Criteria
is=相等,in=在列表中,and=且,
Criteria.where("dbid").is(dbid).and("groupTypeId").in(gtIds).and("depId").in(deptRels).and("isPrivate").exists(false).and("itemTypeId").nin(hiddenIds)
nin不属于
exists 字段存在
多个critreia or
new Criteria().orOperator(filterCriteria.toArray(new Criteria[filterCriteria.size()])
Criteria elemMatch(Criteria c)
Order
order = new Order(orderItem.isDesc() ? Direction.DESC : Direction.ASC, orderItem.getPropertyName());
Sort
Sort(Order...)
Query
query.addCriteria(critreia)
query.withHint
query.with(new Sort(new Order(Direction.DESC, "index")));
query.limit(limit);
Update
update = new Update();
update.set(key, Object);设置属性key的值为object
update.inc(propName, Number);属性key的值加number
push(String key, Object value) ;往数组,属性值为的key添加一个元素value
update.pull(property, value);数组,属性值为的key移除一个元素value 或者Criteria criteria = new Criteria(pullProperty);criteria.is(value);根据条件移除,元素中的某个属性pullProperty条件值value
Update pop(String key, Position pos)数组key移除出一个位置的值(Position是first或laster)
MongoTemplate
public <T> List<T> find(Query query, Class<T> entityClass)
mongoTemplate.findAndRemove(query, Approvers.class);
mongoTemplate.findOne(Query query, Class<T> entityClass)
public <T> T findAndModify(Query query, Update update, FindAndModifyOptions options, Class<T> entityClass)
mongoTemplate.save(entity);
public WriteResult updateMulti(Query query, Update update, Class<?> entityClass)
long count(Query query, Class<?> entityClass, String collectionName)
mongodb存对象的引用
对像有这个注解属性
@DBRef
private StreamDynamic streamDynamic;
mongodb 操作数组private <T> void updateArrayByKey(String id, String property, String pullProperty, Object value, Class<T> entityClass, boolean delete) {
Query query = new Query();
query.addCriteria(Criteria.where("_id").is(id));
Update update = new Update();
if (delete) {
if (pullProperty == null) {
update.pull(property, value);
} else {
Criteria criteria = new Criteria(pullProperty);
criteria.is(value);
update.pull(property, criteria.getCriteriaObject());
}
} else {
update.push(property, value);
}
mongoTemplate.findAndModify(query, update, entityClass);
}
相关推荐
【标题】"基于Springboot和SpringDataMongoDB的美食菜谱网站"是一个示例项目,展示了如何使用Spring Boot框架和Spring Data MongoDB模块构建一个在线的美食菜谱平台。这个项目的核心在于利用现代Java开发工具和技术...
它使用了熟悉的 Spring 概念,例如用于核心 API 的模块类,轻量级仓库风格的数据访问。Spring Data MongoDB 项目提供了集成 MongoDB 文档数据库。Spring Data MongoDB 的核心功能区是一个 POJO 中心模型,用于与 ...
- **核心概念**:虽然不需要深入了解Spring API的具体细节,但对Spring框架背后的原理有一定认识是非常重要的,比如IoC容器的概念。 #### 2. 了解NoSQL和文档数据库 - **NoSQL**:一种广泛采用的非关系型数据库技术...
Spring Data MongoDB是Spring Data项目的一部分,它为MongoDB提供了简单易用的API,开发者可以避免直接编写MongoDB的原生驱动代码。Spring Data MongoDB支持自动实体映射,通过注解即可定义对象与MongoDB集合之间的...
Spring Data MongoDB 多文档事务实现详解 正如标题所示,Spring Data MongoDB 多文档事务的实现是 MongoDB 4.0 版本中最受期待的特性之一。本文将详细介绍如何使用 Spring Data MongoDB 实现多文档事务,并提供了...
版本 1.0 日期:2013 年 3 月 7 日 Simple Spring MVC、Spring DATA、MongoDB、Annotations Project With one Entity only Save、update、delete、findById、FindAll 方法 Controller、Services、Dao 层返回 JSON ...
java snmp 源码 layout title tags categories description post SpringMVC+Spring-Data+MongoDB4.0开启事务支持示例 ...探索使用Spring5和MongoDB4.0,如何开启事务 ...最近项目中用到了Nosql数据库mongodb和SpringMVC...
使用kotlin语言连接mongodb服务进行添加数据操作使用kotlin语言连接mongodb服务进行添加数据操作
MongoDBTemplate是Spring Data MongoDB的核心组件,它提供了丰富的API来执行常见的数据库操作。 首先,让我们深入理解`MongoDBTemplate`。它是MongoDB操作的抽象层,封装了大量的CRUD(创建、读取、更新、删除)...
开发者可能创建了MongoDB的Repository接口,利用SpringDataMongoDB提供的功能进行数据操作。此外,前端可能使用了Thymeleaf、FreeMarker或其他模板引擎,与后端通过RESTful API交互。 总的来说,这个项目为学习者...
SpringDataMongoDB对MongoDB的操作 MongoDB的索引和操作 MongoDB的安全认证 4、主讲内容 基础入门部分 章节一:MongoDB相关概念 章节二:单机部署 章节三:基本常用命令 章节四:SpringDataMongoDB操作 高级进阶部分...
MongoDB 4.0引入了对ACID事务的支持,这是MongoDB发展的一个重大...开发者需要熟悉新的API和复制集的管理,以确保在实现事务处理时的稳定性和安全性。不断学习和理解这些新特性,对于提升MongoDB应用的质量至关重要。
Spring Data MongoDB是Spring家族中的一员,旨在简化与MongoDB的集成,提供了一套丰富的API来操作MongoDB数据库。通过抽象出通用的CRUD(创建、读取、更新、删除)操作,开发者可以更专注于业务逻辑的编写,而无需...
在SpringBoot的`pom.xml`或`build.gradle`文件中,我们需要添加对应的MongoDB驱动和SpringDataMongoDB依赖。对于Maven用户,可以添加如下依赖: ```xml <groupId>org.springframework.boot <artifactId>spring-...
SpringBoot配置多数据源-MongoDB主从实例 概述: 本文将向读者介绍如何在SpringBoot项目中配置多数据源,特别是MongoDB主从配置。通过本文,读者将了解到如何在项目中配置主从数据库,并且兼容其他数据库。...
技术架构包括SpringBoot、SpringMVC、MyBatis、SpringDataMongoDB、SpringData、ElasticSearch、MongoDB、Spring Cloud、ElasticSearch、FastDFS、Nginx、支付等。 项目6:数字货币交易所项目 数字货币交易所项目...