我的理解是,在MongoDB中,常规(非文本)索引是根据传递给createIndex()
的参数进行预排序的。例如,db.collection.createIndex({ name: 1 })
将创建一个索引,其中包含按名称升序排列的文档。
是否可以使用文本索引执行此操作?我有一个带有文本索引的大型MongoDB集合(数百万个文档)。当我对集合执行文本搜索时,我想按created
日期对结果进行排序...但是排序操作始终会耗尽内存。我可以设置文本索引以使其按created
日期进行预排序(即检索结果后无需执行排序操作)吗?
答案 0 :(得分:1)
根据text index docs,这是不可能的:
排序操作无法从文本索引获得排序顺序,即使从 复合文本索引;即排序操作不能使用 文本索引。
不幸的是,看起来像对文本索引进行排序是MongoDB中的一个实际问题。他们的跟踪器SERVER-36087,SERVER-24375上存在多个相关问题, SERVER-36794