将MongoDB Aggregation Pipeline转换为JS函数不能使用$ out

时间:2017-07-31 13:27:13

标签: javascript mongodb aggregation-framework

这是我的问题:我想将一个MongoDB聚合管道转换为一个JS函数,并且这个聚合将其结果存入一个集合。

为此,我有两个解决方案:

在将聚合结果转换为如下数组后生成insertMany:

function myFunction(){
    console.log("Start");
    db.Collection1.insertMany(db.Collection2.aggregate([
            {
                $match: {...}
            },
            {
                $project: {...}
            },
            {
                $group: {...}
            },
            {
                $addFields: {...}
            }
        ]
    ).toArray());
    console.log("End");
} 

或者像这样在聚合中输入$:

function myFunction(){
    console.log("Start");
    db.Collection2.aggregate([
            {
                $match: {...}
            },
            {
                $project: {...}
            },
            {
                $group: {...}
            },
            {
                $addFields: {...}
            },
            {
                $out: {"collection1"}
            }
        ]
    );
    console.log("End");
} 

在这2个解决方案中,控制台显示2条消息,但在带有$ out的解决方案中,聚合未执行,我不知道原因。

如果有人有解决方案,我很感兴趣。

提前感谢您,并提前抱歉我的英语不是很好

0 个答案:

没有答案