如何通过一个字符串数组进行排序查询,该字符串将"stage" : "SORT"在其计划中执行?
我正在使用mongo 3.6
"mycoll"集合包含大约500,000个这样的文档:
{
someobject:{
arrayfield:["asd","qwe"]
}
}
{
someobject:{
arrayfield:["zxc"]
}
}
Run Code Online (Sandbox Code Playgroud)
这个查询
db.mycoll.find().sort({ "someobject.arrayfield": 1 }).skip(125340).limit(20)
Run Code Online (Sandbox Code Playgroud)
产生错误
排序操作使用的RAM超过最大33554432字节
我有"someobject.arrayfield"的索引,但是explain()给了我:
"winningPlan" : {
"stage" : "SKIP",
"skipAmount" : 125340,
"inputStage" : {
"stage" : "SORT",
"sortPattern" : {
"someobject.arrayfield" : 1
},
"limitAmount" : 125360,
"inputStage" : {
"stage" : "SORT_KEY_GENERATOR",
"inputStage" : {
"stage" : "FETCH",
"inputStage" : {
"stage" : "IXSCAN",
"keyPattern" : {
"someobject.arrayfield" : 1
},
"indexName" : "arrayfield_indexname",
"isMultiKey" …Run Code Online (Sandbox Code Playgroud) mongodb ×1