Mongo本身不支持“临时”集合。
这里要做的典型事情是实际上不将所有输出结果写入另一个数据库,因为这完全没有意义,因为Elasticsearch会自己进行缓存,因此您不需要顶层任何层。
同样,由于IO方面的考虑,将说1万条记录的结果集写入Mongo或另一个DB通常是个坏主意。
对于您所说的内容,有一个功能请求:https :
//jira.mongodb.org/browse/SERVER-3215,但目前尚无计划。
例
您可以有一个结果表。
在此表中,您将拥有一个类似于以下内容的文档:
{keywords: ['bok', 'mongodb']}每次搜索并滚动浏览每个结果项时,都会在此表中写一行,以该搜索结果中的关键字填充关键字字段。这将是每个搜索的每个搜索结果,每个搜索结果列表。最好将每个搜索结果随其传入而流式传输到MongoDB。我从未编程过Python(尽管我想学习),因此使用伪示例:
var elastic_results = [{'elasticresult'}];foreach(elastic_results as result){ //split down the phrases in this result and make a keywords array db.results_collection.insert(array_formed_from_splitting_down_result); // Lets just lazy insert no need for batch or trying to shrink the amount of data to one go or whatever, lets just stream it in.}因此,随着结果的进行,您基本上只是以尽可能快的速度批量插入,可能会为MongoDB创建某种“输入流”。它可以很好地做到这一点。
然后,这应该为您提供单词和语言动词的可拆分列表,以处理诸如MR和诸如此类的东西,以汇总有关它们的统计信息。
越来越不了解您的情况,这几乎是我最好的答案。
它不使用临时表的概念,而是使您的数据永久保存,这听起来不错,因为您希望将Mongo用作存储引擎来完成其他任务。



