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