尝试使用聚合将集合复制到另一个集合时出错。

时间:2018-02-26 11:42:49

标签: node.js mongodb aggregate eval mean-stack

我是MEAN堆栈的新手,我试图将整个数据从一个集合复制到另一个集合。我在nodejs中使用eval函数和mongodb包(v2.2.33)编写了一个API来实现它,但阻止了应用程序。搜索并浏览文档后,我知道我应该使用"聚合"功能。哪个适用于mongodb服务器控制台,但不适用于nodejs API。它表示TypeError:aggregate未定义。

这是我的API:

    router.get('/movedata', function(req,res,next){

    MongoClient.connect("mongodb://localhost:27017/new_db", function (err, 
    db) {


    db.Persons123.aggregate([{ $out: "mycopy"}]);


    // db.eval(function(err) {
    //  if(err) throw err;

    //    db.quotation_dummy_collections.copyTo("quotations");


    //    db.quotation_dummy_collections.remove( { } );

    // } );



   })

    });

1 个答案:

答案 0 :(得分:0)

在MongoClient代码中尝试以下方法:

MongoClient.connect("mongodb://localhost:27017/", function (error, mongo) {
    if (error) throw error;

    let db = mongo.db("new_db");
    let persons = db.collection("Persons123");

    persons.aggregate([], { out: "mycopy"}, 
        function(err, result) {
            if(err) throw err;

            console.log(result);
            mongo.close();
        }
    );
});

OR

persons.aggregate([], { out: "mycopy"});

OR

persons.aggregate([{ out: "mycopy"}]);

OR

persons.aggregate([{ $out: "mycopy"}]);