我是新手的意思是堆栈,我正在尝试将整个数据从一个集合复制到另一个集合。我已经使用MongoDB软件包(V2(使用est function在nodejs中编写了API(v2。2.33(要实现它,但是会阻止应用程序。搜索并通过文档后,知道我应该使用"汇总"功能。它可以与MongoDB服务器控制台使用,但在NodeJS API中不正常。它说TypeError:未定义聚合。
这是我的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( { } );
// } );
})
});
我认为您需要收集对象,类似的东西:
router.get('/movedata', function(req,res,next){
MongoClient.connect("mongodb://localhost:27017/new_db", function (err,
db) {
const personsCollection = db.collection('Persons123');
personsCollection.aggregate([{ $out: "mycopy"}]);
MongoDB服务器控制台的命令不完全应用于Node.js驱动程序。有关您的版本,请参阅此处的文档-http://mongodb.github.io/node-mongodb-native/2.2/
对于您的代码问题。尝试这个 -
MongoClient.connect("mongodb://localhost:27017/new_db", function(err, db) {
if(err){
console.log(err);
}
else{
var collection = db.collection("Persons123");
collection.aggregate([{
$out:'"mycopy"'
}]).toArray(function(err,items){
if(err){
console.log(err);
}
else{
console.log(items);
}
});
}
});
浏览了stackoverflow中的所有相关问题后。我找到了解决问题的方法。此链接帮助我https://stackoverflow.com/questions/13916004/mongo-copy-from-one-collection-to-another-another-the-same-db/13916163
这是我的代码:
const pp = db.collection('quotation_dummy_collections');
const pp01 = db.collection('quotations');
pp.find().forEach(function(doc){
pp01.insert(doc);
pp.remove({});
});
在猫头鹰代码中尝试这些方法:
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();
}
);
});
或
persons.aggregate([], { out: "mycopy"});
或
persons.aggregate([{ out: "mycopy"}]);
或
persons.aggregate([{ $out: "mycopy"}]);
- 从文档中获取:https://mongodb.github.io/node-mongodb-native/api-generated/collection.html
- 如果它仍然不起作用,您可以尝试我的个人代码:https://github.com/matszrmn/nodejs_copy_collection