我是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( { } );
// } );
})
});
答案 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"}]);