Я использую spring-data-mongodb.Работая над агрегацией, я застрял в конвейере проекции.
У меня есть следующий конвейер проекции, который я пытаюсь преобразовать в выражение SpEL.
{
"$project": {
"intervalNumber": {
"$concatArrays" : [
[
{
"$month": {
"$add" : [ "$oDate" , 1]
}
}
]
]
}
}
}
Я попробовал что-то в строках, как показано ниже
project()
.andExpression("concatArrays(month(oDate + [0]", 1)
Это дает
{
"$project": {
"intervalNumber": {
"$concatArrays" : [
{
"$month": {
"$add" : [ "$oDate" , 1]
}
}
]
}
}
}
Я ищу способ, где {"$ month: ...} упакован в массив как [{" $ month ":...}] Я пробовал новый объект [] {...}, но, похоже, он не работает.
В настоящее время я использую обходной путь, описанный ниже, который я нахожу подверженным ошибкам. Также япотерять способность параметризовать $ add
project()
.and(context -> new BasicDBObject(
"$concatArrays",
Collections.singletonList(
Collections.singletonList(
new BasicDBObject(
"$month",
new BasicDBObject("$add", new BasicDBObject("$oDate", 1))
))))).as(INTERVAL_NUMBER)