我们在应用程序中进行了设计更改,以适应一些新的要求。设计变更迫使我们迁移一个mongodb集合,而不是拥有单独的字段,必须从现有字段中创建一个派生的JSON字符串作为字段。
迁移过程将由最终用户在UI中执行操作(如保存更改)来调用。但是一个动作可能会更新几千个文档。因此,我们希望编写在服务器端执行的Javascript代码,这样我们就可以避免向应用程序加载许多记录。
但是我们遇到的问题是,不能使用eval调用java脚本函数,因为集合是分片的。我们不能考虑的其他选择是将集合设为非分片,因为迁移必须在实时系统上进行。
如果您知道任何替代方法,请帮助我们。
迁移示例: ExampleDoc (集合)包含字段a1、a2、b1和b2。迁移将创建名为fieldJSON:{a:"",b:""}的新字段。这里a和b是从现有字段a1、a2、b1和b2导出的。
发布于 2014-10-06 20:21:26
好了,现在我明白了
eval数据库命令,因为它是已分片的字段,无法取消对当前集合的切分。<代码>H211<代码>F212那么,有没有可能通过mapReduce来实现意图呢?
通过指定一些参数(如{out:{merge:<collectionName>, sharded:true}}. ),
https://stackoverflow.com/questions/26211077
复制相似问题