【发布时间】:2015-12-15 09:04:46
【问题描述】:
我正在使用spring-data-mongodb(版本为1.8.1.release)来操作我的mongodb, 但我遇到了一个问题。 我想使用聚合来投影一个新字段,它使用#concat 连接两个字段。像这样:
{
"$project":{
"idai" : {
"$concat": [
{"$substr":["$channel_id",0,-1]},
"-",
{"$substr":["$no_ai",0,-1]}
]
},
...
}
下面的代码是我的java代码
AggregationResults<QualifyHourData> results = mongoOps.aggregate(newAggregation(HisAiInfo.class,
match(where("date").gte(startTime.toDate()).lt(endTime.toDate())),
project("date","zset").andExpression("$channelId + [0] + $noAi",CHAR_CHANNELID_NOAI).as("idai"),
...
), QualifyHourData.class);
当它运行时,日志是:
{
"aggregate" : "last" ,
"pipeline" : [
{ "$match" : { "date" : { "$gte" : { "$date" : "2015-11-30T16:00:00.000Z"} , "$lt" : { "$date" : "2015-12-31T16:00:00.000Z"}}}},
{ "$project" : { "date" : 1 , "zset" : 1 , "idai" : { "$add" : [ "$channel_id" , "_" , "$no_ai"]}}} , ...
]
}
看,这不是我过期的。 请帮忙!!!
【问题讨论】:
-
$concat可以这样使用.andExpression("concat(name, 'foo-bar')"). -
@ChristophStrobl 谢谢你的帮助,我很喜欢我的问题,使用你的建议
标签: java spring mongodb spring-data-mongodb