Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在mongoDB中将集合复制到另一个新集合_Javascript_Node.js_Arrays_Mongodb_Schema - Fatal编程技术网

Javascript 如何在mongoDB中将集合复制到另一个新集合

Javascript 如何在mongoDB中将集合复制到另一个新集合,javascript,node.js,arrays,mongodb,schema,Javascript,Node.js,Arrays,Mongodb,Schema,我需要您的帮助,将一个集合复制到不同数据库中的另一个集合。在第一种情况下,我从第一个集合中读取数据。没问题。您可以使用以下方法复制它: 实际上有几种方法可以做到这一点db.collection.copyTo()就是其中之一,但它只能在Mongodb 4.0或更早版本中使用。从mongoDB文档: 从版本4.2开始,MongoDB删除eval命令。不推荐使用的db.collection.copyTo()封装了eval命令,只能在MongoDB 4.0或更早版本上运行。有关行为和示例,请参阅4.0或

我需要您的帮助,将一个集合复制到不同数据库中的另一个集合。在第一种情况下,我从第一个集合中读取数据。没问题。

您可以使用以下方法复制它:


实际上有几种方法可以做到这一点
db.collection.copyTo()就是其中之一,但它只能在Mongodb 4.0或更早版本中使用。从mongoDB文档:

从版本4.2开始,MongoDB删除eval命令。不推荐使用的db.collection.copyTo()封装了eval命令,只能在MongoDB 4.0或更早版本上运行。有关行为和示例,请参阅4.0或更早版本的手册

我建议使用mongodumpmongorestore等工具。这些工具是MongoDB工具包的一部分

您基本上可以在命令行中使用它们。像这样:

mongodump.exe  --host <host> --port <port> --db test --collection collection1 --out "x:\out"
mongorestore.exe  --host <host> --port <port> --db test --collection collection2 "x:\out\test\collection1.bson" 
mongodump.exe--host--port--db test--collection collection1--out“x:\out”
mongorestore.exe--主机--端口--数据库测试--集合集合2“x:\out\test\collection1.bson”
希望它能起作用。

谢谢。我创建了以下内容:
MongoClient.connect(process.env.URL_PROD,{useNewUrlParser:true,useUnifiedTopology:true},函数(err,clientP){if(err)返回console.error(err);const dbP=clientP.db(process.env.DATABAZE_PROD);dbP.collection(process.env.KOLEKCE_PROD).find().toArray(函数(err,模式){//vybere z db na produ posledni limit MongoClient.connect(process.env.URL_TEST,function(err,clientT){const dbT=clientT.db(process.env.DATABAZE_TEST);var s=changeData(schema)dbT.collection(process.env.KOLEKCE_TEST).insertMany(s,function(err,res){)(if(err)return console.err(err);});dbT.close;});dbP.close;

mongodump.exe  --host <host> --port <port> --db test --collection collection1 --out "x:\out"
mongorestore.exe  --host <host> --port <port> --db test --collection collection2 "x:\out\test\collection1.bson"