是否可以在MongoDB中对文本索引进行预排序?

时间:2019-04-22 12:18:34

标签: mongodb

我的理解是,在MongoDB中,常规(非文本)索引是根据传递给createIndex()的参数进行预排序的。例如,db.collection.createIndex({ name: 1 })将创建一个索引,其中包含按名称升序排列的文档。

是否可以使用文本索引执行此操作?我有一个带有文本索引的大型MongoDB集合(数百万个文档)。当我对集合执行文本搜索时,我想按created日期对结果进行排序...但是排序操作始终会耗尽内存。我可以设置文本索引以使其按created日期进行预排序(即检索结果后无需执行排序操作)吗?

1 个答案:

答案 0 :(得分:1)

根据text index docs,这是不可能的:

  

排序操作无法从文本索引获得排序顺序,即使从   复合文本索引;即排序操作不能使用   文本索引。

不幸的是,看起来像对文本索引进行排序是MongoDB中的一个实际问题。他们的跟踪器SERVER-36087SERVER-24375上存在多个相关问题,  SERVER-36794