java匹配字段返回成功,Java MongoTemplate查询返回指定字段及指定数量的数据
假设我有一个实体类Article
@Data
@Document(collection = "articles")
public final class Article {
@Id
private String id;
private String name;
private String url;
private String author;
private List comments;
}
实体类Comment
@Data
public final class Comment {
private String userId;
private String content;
}
已经通过测试用例添加进去几条数据,假设其中一个Article的_id为5b5694f38ec9b636c4e52d69,
可以通过MongoRepository获取到这个id的Article,也可以通过MongoTemplate获取,
final String id = "5b5694f38ec9b636c4e52d69";
Query query = new Query()
.addCriteria(Criteria.where("id").is(id));
Article article = mongoTemplate.findOne(query, Article.class);
这样可以获取到,现在我想只获取这个Article的List,
Document queryObject = new Document();
queryObject.put("id", id);
Document fieldsObject = new Document();
fieldsObject.put("id", false);
fieldsObject.put("comments", true);
Query query = new BasicQuery(queryObject, fieldsObject);
如果我find时返回List
List comments = mongoTemplate.findOne(query, List.class);
这样毫无疑问会出现异常,返回Article
Article article = mongoTemplate.findOne(query, Article.class);
List comments = Optional.of(article).orElseThrow(ArticleNotFoundException::new)
.getComments();
这样可以获取List,但是这样的获取意义不是很大,也无法获取指定数量的Commit(subList()也没有什么意义)。
有没有什么方式直接返回List呢,这样便可以使用limit()和skip();
如果没有,那有没有一种方式可以实现limit() skip()同样的效果?
java匹配字段返回成功,Java MongoTemplate查询返回指定字段及指定数量的数据相关推荐
- 解决命令行下java编译javac不成功java和java -version可以成功的三种解决方案
最近在cmd命令行下javac编译java文件不成功,但是输入java和java -version没问题 在CSDN看了一下午各路大神的回答,自己总结一下三个解决方法: 1.如果cmd下输入java或 ...
- 分析输入url到页面返回的过程(查询返回过程)
最近看到一个题目,是当在浏览器中输入一个url后回车,后台发生了什么?比如输入url后,你看到了百度的首页,那么这一切是如何发生的呢? 这个问题之前.最近.我想以后肯定还会被问到,或者问到这样的题目, ...
- MySQL简单命令和SELECT查询,给字段起别名【MySQL数据库】
Java养成计划----学习打卡第六十四天 内容导航 数据库的相关操作 数据库的导入 查看导入数据库中的表 查看表中的数据 查看表的基本结构[简化] 查看表的结构[详细] 查看mysql数据库的版本号 ...
- [Elasticsearch2.x] 多字段搜索 (三) - multi_match查询和多数字段 译
multi_match查询 multi_match查询提供了一个简便的方法用来对多个字段执行相同的查询. NOTE 存在几种类型的multi_match查询,其中的3种正好和在"了解你的数据 ...
- Elasticsearch多字段搜索 - multi_match查询和多数字段-----multi_match查询
multi_match查询提供了一个简便的方法用来对多个字段执行相同的查询. best_fields,most_fields以及cross_fields. 默认情况下,该查询以best_fields类 ...
- sql--sqlsever--时间相关SQL语句--查询当前时间至前N天的数据
sql–sqlsever–时间相关SQL语句–查询当前时间至前N天的数据 . . . sql server:取当前时间前10分钟之内的数据 dateadd() 当前时间 select GETDATE( ...
- java search 不能使用方法_java – 无法使用TERMS QUERY从ELASTIC SEARCH查询字母数字字段...
我试图使用TERMS QUERY从索引查询字母数字值,但它没有给我输出. 查询: { "size" : 10000, "query" : { "boo ...
- java mysql查询字段换行,java类中写sql语句,查询条件包含换行
java类中写sql语句,查询条件包含换行 detachedCriteria.add(Restrictions.or( Restrictions.like("chengBanDanWeiId ...
- oracle 代码 字段映射,将ORACLE TIMESTAMP(9)字段映射到java.util.Date
存在将ORACLE TIMESTAMP(9)字段映射到Java中的java.sql.Timestamp或java.util.Date的问题 ojdbc 11.2.0.1. 0 休眠的注解3.3.1.G ...
最新文章
- Windows Mobile下使用ZLIB压缩
- Kubuntu 9.10设置支持文件分级的方法
- 怎么在python下载网站内容-python从网站上下载东西
- JVM 监控以及内存分析
- 神经网络变学习率算法代码_机器学习算法之神经网络
- Devops-运维效率之数据迁移自动化
- 同为Chromium浏览器,Edge却被“特别关照”
- 8051 管脚定义_8051微控制器的引脚说明
- 前端开发学习Day4
- python全栈开发基础【补充】包的补充
- 队列的基础知识及实现方法
- 超宽屏幕比例_显示器屏幕比例与分辨率对照表
- Oracle全局临时表和私有临时表
- 《静态时序分析实用方法》第三章翻译
- 你知道各调的特点吗?
- Unity手游性能测评报告——MOBA篇
- 前端基础知识点-每天一个基本知识点(100+个前端小知识,你是否都知道?)
- Double的compareTo
- C#语句1:选择语句一(if else )
- 前端图片 - icon Fonts