spring - 如何在 Spring MongoDB 中将 2 个整数值连接成一个字符串

标签 spring mongodb mongodb-query spring-data spring-data-mongodb

我的文档在聚合阶段如下所示:

{
    month: 9,
    year: 2017
}

现在我希望它变成:

{
    time: "9/2017"
}

在 Mongo shell (v3.6.4) 中,我可以执行此操作,并且它按预期工作:

$concat: [{$substr:["$month", 0, -1]}, "/", {$substr:["$year", 0, -1]}]

在 4.0 版本中,有一个 $toString 运算符可以执行相同的操作 $substr

但是 Spring MongoDB 中没有等效项,Stack Overflow 上的一些主题使用代码 .addExpression("concat(month,'/',year)")。如果只有月/年字段是类似于 {month: "9"} 但不是 {month: 9} 的字符串,则此代码片段有效。

最佳答案

我自己得到的:

project().andExpression("concat(substr(month,0,-1),'/',substr(year,0,-1))").as("time")

关于spring - 如何在 Spring MongoDB 中将 2 个整数值连接成一个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51613452/

相关文章:

Spring:正确设置@ComponentScan

java - Spring Data JPA 太慢

mongodb - 坚持和冲洗 - Doctrine 和 MongoDB

mongodb 副本集成员无法通过 SSL 加入集群

mongodb - Mongo 不使用 $gte 和 $date 返回聚合文档

java - Spring Boot REST 应用测试方法

java - 在 spring 中运行 javax.websocket 端点?

mongodb - Mongo 查询嵌入式文档中的动态字段

node.js - 如何从 MongoDB 回调和 Node 中删除 "result"、 "insertedCount"和 "insertedIds"并仅获取一个数据库对象数组?

javascript - 在一个查询中为每个属性分组不同的值和计数