【发布时间】:2019-01-17 06:28:23
【问题描述】:
我有一个包含 >100k 文档的集合。 一个示例文档就像
{
"created_at" : 1545039649,
"priority" : 3,
"id" : 68,
"name" : "document68"
}
db.mycol.find().sort({created_at:1})
和
db.mycol.find().sort({priority:1})
导致错误。
Error: error: {
"ok" : 0,
"errmsg" : "Executor error during find command: OperationFailed: Sort operation used more than the maximum 33554432 bytes of RAM. Add an index, or specify a smaller limit.",
"code" : 96,
"codeName" : "OperationFailed"
}
然后我索引了这些字段。
db.mycol.createIndex({'priority':1})
db.mycol.createIndex({'created_at':1}, {sparse:true})
为 created_at 添加了稀疏索引,因为它是必填字段。
现在
db.mycol.find().sort({priority:1})
给出结果。但是
db.mycol.find().sort({created_at:1})
仍然会导致同样的错误。
【问题讨论】:
标签: mongodb sorting indexing mongodb-query