MongoDB:如何将返回的结果保存到另一个集合?

MongoDB:如何将返回的结果保存到另一个集合?,mongodb,Mongodb,考虑以下几点: 我有一个名为C_a的MongoDB集合。它包含大量文档,例如超过50000000份 为了简单起见,假设每个文档都有以下模式: { "username" : "Aventinus" "text": "I love StackOverflow!", "tags": [ "programming", "mongodb" ] } 使用文本索引,我可以返回包含关键字StackOverflow的所有文档,如下所示: db.C_a.fi

考虑以下几点:

我有一个名为C_a的MongoDB集合。它包含大量文档,例如超过50000000份

为了简单起见,假设每个文档都有以下模式:

{
    "username" : "Aventinus"
    "text": "I love StackOverflow!",
    "tags": [
      "programming",
      "mongodb"
    ]
}
使用文本索引,我可以返回包含关键字StackOverflow的所有文档,如下所示:

db.C_a.find({$text:{$search:"StackOverflow"}})
我的问题如下:

考虑到上面的查询可能返回数十万个文档,将返回的结果直接保存到另一个名为C_b的集合中最简单/最快的方法是什么


注意:post解释了如何使用聚合来查找精确匹配项,即特定日期。我对使用来保存包含特定关键字的所有帖子感兴趣

参考答案是正确的。可以更新该答案中的示例查询以使用您的条件:

db.C_a.aggregate([
  {$match: {$text: {$search:"StackOverflow"}}},
  {$out:"C_b"}
]);
从MongoDB文档中获取:

如果在聚合中使用$text运算符,则以下限制也适用

包含$text的$match阶段必须是管道中的第一个阶段。 文本运算符在阶段中只能出现一次。 文本运算符表达式不能出现在$not或$not表达式中。 默认情况下,文本搜索不会按匹配分数的顺序返回匹配文档。在$sort阶段中使用$meta聚合表达式。