gpt4 book ai didi

java - 如何将 MongoDB 结果从 $dateToString 操作转换为 Java 对象

转载 作者:行者123 更新时间:2023-12-02 02:30:21 24 4
gpt4 key购买 nike

我使用以下查询从我的 mongo 文档中的 ISODate 数据类型获得了“仅日期”结果:

db.getCollection('tournamentactivity').aggregate( [ 
{
$project:{
"yearMonthDay":
{
"$dateToString" :
{
"format" : "%Y-%m-%d",
"date" : "$activityDate"
}
},
"tid" : 1,
"dayActivity.type" : 1
}
},
{
$match:{
$and : [
{ "tid" : "12345678" },
{ "yearMonthDay" : "2017-11-05" }
]


}
}] )

到这里一切都很好。但我试图在 Java 对象中转换相同的内容,因为我必须在响应类型中发送相同的内容。

我遵循了本教程:Projections 并尝试在我的 Java 代码中执行相同的操作,如下所示:

ProjectionOperation projectToMatchModel = project().
andExpression("format").as("%Y-%m-%d").
andExpression("date").as("$activityDate");

我之前已经编写过聚合操作,但我不知道如何在Java代码中转换这个结果/查询。

任何人都可以指导我哪里出了问题以及如何在聚合聚合 = newAggregation( );方法?

谢谢。

仅供引用:我不知道如何在聚合对象中转换此查询,并且我可能在选择投影操作时是错误的。如果我错了,请对我宽容一点!

最佳答案

您可以尝试以下聚合。

添加以下导入

import static org.springframework.data.mongodb.core.aggregation.Aggregation.*;
import static org.springframework.data.mongodb.core.aggregation.Fields.field;
import static org.springframework.data.mongodb.core.aggregation.Fields.from;
import static org.springframework.data.mongodb.core.query.Criteria.where;

import org.springframework.data.mongodb.core.aggregation.Aggregation;
import org.springframework.data.mongodb.core.aggregation.DateOperators;

选项1(使用扩展方法)

Aggregation aggregation = newAggregation(
project(from(field("dayActivity.type", "dayActivity.type"),
field("tid"))).
and("activityDate").dateAsFormattedString("%Y-%m-%d").as("yearMonthDay"),
match(where("yearMonthDay").is("2017-11-05").and("tid").is("12345678"))
);

选项 2(使用聚合表达式)

Aggregation aggregation = newAggregation(
project(from(field("dayActivity.type", "dayActivity.type"),
field("tid"))).
and(DateOperators.dateOf("activityDate").toString("%Y-%m-%d")).as("yearMonthDay"),
match(where("yearMonthDay").is("2017-11-05").and("tid").is("12345678"))
);

关于java - 如何将 MongoDB 结果从 $dateToString 操作转换为 Java 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47220323/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com