我需要将一个集合复制到另一个服务器并更改每个文档中的值。因此,为了节省时间,集合非常大,而不是复制集合和修改数据,我想知道是否可以有一个脚本,当它通过文档时,它会在将文档插入另一个文档之前更改值服务器。 修改几乎是填充0的字段。如何在更改文档时将一个集合复制到另一个服务器
例如:
来源:服务器1:27017
db.students:
{"_id" : ObjectId("..."), "sId" : "1234", "grade" : 4 }
{"_id" : ObjectId("..."), "sId" : "4444", "grade" : 3 }
{"_id" : ObjectId("..."), "sId" : "5555", "grade" : 5 }
目的地:服务器2:27017
db.students:
{"_id" : ObjectId("..."), "sId" : "00", "grade" : 4 }
{"_id" : ObjectId("..."), "sId" : "0004444", "grade" : 3 }
{"_id" : ObjectId("..."), "sId" : "0005555", "grade" : 5 }
谢谢。插入前有没有办法修改数据?我知道mongo的导入和导出。我试图节省一些时间。 –
由于您的集合非常大,因此请在数据库层本身中执行此过程。在临时集合中使用mongodump,mongorestore,然后将$ project,$ concat,$ out一起存储为期望的集合,最后删除临时集合。 –