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或更早版本的手册
我建议使用mongodump和mongorestore等工具。这些工具是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"