在 MongoDB 中复制属性

Aid*_*man 2 mongodb mongoid

所以我在 mongo 中有一个带有created_at字段的集合,我试图sort_date为每个文档添加一个属性,该属性最初等于created_at但可由用户修改。我正在使用带有 Rails 的 Mongoid 并尝试编写迁移,我想知道是否有一种聪明的(阅读:有效的)方法可以将一个属性的值复制到另一个属性,而无需 mapReduce 或循环遍历 Ruby 中的模型。谢谢!

Aid*_*man 5

回答我自己的问题:

可悲的是,这似乎是目前最好的选择。我想至少它比 mapReduce 简单。在这里找到了解决方案。

db.mycoll.find({}).forEach(function(doc){
  db.mycoll.update({_id: doc._id}, {$set: {sort_date: doc.created_at}});
});
Run Code Online (Sandbox Code Playgroud)