Mongodb:db.collection.copyTo()和eval()已被弃用。有什么选择?

时间:2015-05-27 05:42:58

标签: mongodb

我发现自3.0以来已弃用db.collection.copyTo()eval()。但我找不到可能的东西。

有什么替代方案?

3 个答案:

答案 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' }
    ]);