如何将多个文档合并到一个文档中并移动到另一个集合?

时间:2014-11-19 15:01:28

标签: mongodb

我有以下情况:

  • 一个集合中的50个文档
  • 想要进入1档
day: {data:data,data:data}
day: {data:data,data:data}

这些数据应该成为:

week:[day,day,day..]

这是一次性工作。我想在命令行或Robomongo中执行此操作。

1 个答案:

答案 0 :(得分:1)

由于我们无法看到您的确切文档结构,因此无论文档的结构如何,我都会尝试提供一个简单的解决方案。

基本上,您希望迭代源集合中的每个文档,并生成所有值的数组。

week_array = []
db.source_col.find({}).forEach( function( doc ){
  week_array.push( doc );
} );

您现在拥有一个包含source_collection中所有文档的数组。您现在要做的就是构造一个新文档并将数组插入到正确的属性中:

var week_doc = { "week": week_array };

现在只需将其插入目标集合中:

db.target_col.insert( week_doc );
相关问题