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