У меня есть большой скрипт go, работающий с весенней загрузкой. Мне нужно выполнить его как собственный запрос или с использованием структуры агрегации. Я могу написать lookup
, unwind
, group
в структуре агрегации. Но я не знаю, как написать вложенный $addFields
, $map
, $reduce
, $arrayToObject
, $floor
, $multiply
и $divide
.
Например ,
{
$lookup: {} //lookup script
},
{
$unwind // unwind script
},
{
$addFields: {
ans: {
$reduce: {
input: {
$map: {
input: "$ans",
in: { $objectToArray: "$$this" }
}
},
initialValue: [],
in: {
$concatArrays: [
"$$value",
"$$this"
]
}
}
}
}
},
{
$group : // group
},
{
$addFields: {
ans: {
$map: {
input: "$ans",
in: {
$arrayToObject: [
[
{
k: "$$this.v",
v: "$$this.count"
},
{
k: "percentage",
v: {
$floor: {
$multiply: [
{
$divide: [
"$$this.count",
"$total"
]
},
100
]
}
}
}
]
]
}
}
}
}
}
I = f это сложно, пожалуйста, дайте мне знать, как я могу написать собственный запрос (скопировать этот запрос и вставить в репозиторий или что-то в этом роде)?