在mongodb聚合管道中重用函数

时间:2018-07-27 12:38:52

标签: mongodb aggregation-framework aggregate-functions

我可能会误解某些东西,但是据我了解,您不能在mongodb聚合管道中使用函数。例如

我在分组阶段产生了许多嵌套数组(仅在此示例中,我无法展开每个数组,而不得不使用嵌套数组)

要弄平每个数组,我想减少它们,例如

flattenedArray:  {$reduce: {
    input: "$nestedArray",
    initialValue: [ ],
    in: { $concatArrays: [ "$$value", "$$this" ] }
    }
}

但是我必须为每个嵌套数组(?)写出来,这似乎很冗长。有没有办法只有一个功能例如像

function flatten(nestedArray){

    return {$reduce: {
        input: nestedArray,
        initialValue: [ ],
        in: { $concatArrays: [ "$$value", "$$this" ] }
    }
}

 flattenedArrayOne : flatten(nestedArrayOne)
 flattenedArrayTwo : flatten(nestedArrayTwo)

我只是想避免在我的管道中编写很多重复的代码并保持可读性 感谢您的任何评论

0 个答案:

没有答案