spring data mongodb-spring-data-mongodb聚合查询统计数组长度,不识别$size

问题描述

spring-data-mongodb聚合查询统计数组长度,不识别$size

数据结构如下:

shell命令如下:

db.tongueRecord.aggregate({$match:{userId:"123"}},{$project:{numberOfUserTongues:{$size:"$userTongues"}}},{$group:{_id:"$userId",total:{$sum:"$numberOfUserTongues"}}});

命令行下成功执行结果:

但是通过spring-data-mongodb实现的时候遇到了如下错误:

意思不能够识别$size,意味着我不能够直接获取对象数组的长度,然后进行统计,苦恼0.0

下面是我mongoTemplate对聚合查询的实现,可能是某个地方有问题,还望高手指教!

解决方案

spring-data-mongodb 1.5开始支持project $size,

ProjectionOperation operation = Aggregation //
.project() //
.and("tags") //
.size()//
.as("tags_count");

https://jira.spring.io/browse/DATAMONGO-979

时间: 2024-09-09 16:59:59

spring data mongodb-spring-data-mongodb聚合查询统计数组长度,不识别$size的相关文章

浅谈MongoDB中几种不同查询方法

 1.find MongoDB使用find来进行查询.查询就是返回一个集合中文档的子集,子集合的范围从0个文档到整个集合.find的第一个参数 决定了要返回哪些文档.其形式也是一个文档,说明要查询的细节. 空的查询文档{}会匹配集合的全部内容.要是不指定查询文档,默认是{}. 如:db.users.find()返回集合users中的所有内容. 向查询文档中添加键值对,就意味着添加了查询条件.对绝大多数类型来说,整数匹配整数,布尔类型匹配布尔类型,字符串匹配 字符串. 2.指定返回的键 有时并不需

spring如何得到上传mongodb文件后的ID值??

问题描述 spring如何得到上传mongodb文件后的ID值?? 如何得到上传mongodb文件后的ID值??如何得到上传mongodb文件后的ID值?? 解决方案 http://blog.csdn.net/cuiran/article/details/8 希望这里有你想要的答案!

Performing Data Write Operations with MongoDB

Introduction This article discusses the steps involved in performing data write operations with MongoDB, focusing on the roles of the Journal and Oplog applications. Journal is a concept on the MongoDB storage engine layer while plog is a capped coll

spring data jpa + spring mvc的事务控制问题

问题描述 spring data jpa + spring mvc的事务控制问题 问题大概是这样的,如下@Transactionalpublic void save(A a){ a = aRepository.save(a); B b = new B();b.setAId(a.getId());bRepository.save(b); }这样是获取不到a对象的id的,因为方法没有执行完,这个事务没有提交,数据没有更新到数据库,请问如果我想在save之后通过返回的对象就能拿到主键需要怎么做,事务是

深入实践Spring Boot2.3.4 MongoDB测试

2.3.4 MongoDB测试 如果还没有安装MongoDB服务器,可以参照附录B的方法安装并启动一个MongoDB服务器.然后,使用如代码清单2-18所示的配置方法配置连接服务器的一些参数,该配置假定你的MongoDB服务器安装在本地,并使用默认的数据库端口:27017. 代码清单2-18 MongoDB数据库配置 # MongoDB mongo.host=localhost mongo.name=test mongo.port=27017 这样就可以编写一个JUint测试例子来测试UserR

mongodb 如何进行 模糊分组查询

问题描述 mongodb 如何进行 模糊分组查询 我现在有一个集合,比如{phonePlatform:'Android 4.0',carrier:"中国移动"},{phonePlatform:'Android 5.0',carrier:"中国移动"},{phonePlatform:'Android 6.0',carrier:"中国联通"},{phonePlatform:'iOS 6',carrier:"中国移动"},{phon

认真做 flex + spring + blazeDS + google app JDO 分页.每次查询总数.

认真做 flex + spring + blazeDS + google app JDO 分页.每次查询总数. 最近被 BlazeDS 折腾的不行了.. 都有点想换成 e4x 格式的 xml 那样来的比较简单.但是终没有放弃.收获还是不错的. 首先是在 explore 里面 使用 SWFLoader 做动态加载. 根据不同的菜单 显示不同的tab 页. 但是 切换 多个标签的时候出现 问题报错: ***TypeError: Error #1034: 强制转换类型失败:无法将 Object@b93

Spring.net(一)----Spring.NET框架简介及模块说明

Spring Framework天生丽质,因为其先进的架构和对一系列前沿开发思想的集成,使它从一产生就深得开发者欢迎,它将设计模式运用到了炉火纯青的地方,它的幽雅和魅力征服了许多JAVA开发者,使这些开发者成为了它的信徒,得程序员心者得天下,Spring引领了J2EE开发的潮流,同时Spring和各种框架的强强联手也为它的信徒的尽早飞翔插上了翅膀,比如老大哥SSH(配置烦琐的struts和Hibernate.Spring的集成).后起之秀EJSA(身材轻便使用灵活及零配置的EASYJWEB+JP

使用Spring Session实现Spring Boot水平扩展

本文使用Spring Session实现了Spring Boot水平扩展,每个Spring Boot应用与其他水平扩展的Spring Boot一样,都能处理用户请求.如果宕机,Nginx会将请求反向代理到其他运行的Spring Boot应用上,如果系统需要增加吞吐量,只需要再启动更多的Spring Boot应用即可. Spring Boot应用通常会部署在多个Web服务器上同时提供服务,这样做有很多好处: 单个应用宕机不会停止服务,升级应用可以逐个升级而不必停止服务. 提高了应用整体的吞吐量.