我发现自3.0以来已弃用db.collection.copyTo()和eval()。但我找不到可能的东西。
有什么替代方案?
答案 0 :(得分:4)
MongoDB Group上的每this discussion。
另一种方法是使用普通的MongoDB查询语言和客户端驱动程序API
实现等效的查询/操作
这意味着在客户端环境(例如Node.js)中编写查询并以这种方式执行它们。如果在连接到localhost的服务器上运行,它们应该非常快,尽管可能不如使用eval
那么快。
此票证概述了弃用的理由。 https://jira.mongodb.org/browse/SERVER-17453
答案 1 :(得分:1)
创建该集合的mongodump,将mongorestore作为单独的或新的集合。
这不会停止读/写或不会锁定集合。
mongodump --db db-name --collection collection-name --archive=collection-name.archive
或另存为json都可以
如果保存为存档,则还原
mongorestore --db db-name --collection collection-name --archive=collection-name.archive
答案 2 :(得分:0)
对于服务器端解决方案,您可以使用聚合...
db.getCollection('source')
.aggregate([
{ $out: 'destination' }
]);