У меня есть коллекция с> 100 КБ документов.
Пример документа будет выглядеть как
{
"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})
Добавлен разреженный индекс в create_at , так как это обязательное поле.
Сейчас
db.mycol.find().sort({priority:1})
дает результат. Но
db.mycol.find().sort({created_at:1})
по-прежнему приводит к той же ошибке.