[{"data":1,"prerenderedAt":2981},["ShallowReactive",2],{"navigation":3,"\u002Fadvanced\u002Findexes":151,"\u002Fadvanced\u002Findexes-surround":2976},[4,26,48,84,102,129],{"title":5,"path":6,"stem":7,"children":8,"icon":10},"Getting Started","\u002Fgetting-started","1.getting-started\u002F1.index",[9,11,16,21],{"title":5,"path":6,"stem":7,"icon":10},"i-lucide-rocket",{"title":12,"path":13,"stem":14,"icon":15},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F2.installation","i-lucide-download",{"title":17,"path":18,"stem":19,"icon":20},"Configuration","\u002Fgetting-started\u002Fconfiguration","1.getting-started\u002F3.configuration","i-lucide-settings",{"title":22,"path":23,"stem":24,"icon":25},"First Steps","\u002Fgetting-started\u002Ffirst-steps","1.getting-started\u002F4.first-steps","i-lucide-footprints",{"title":27,"path":28,"stem":29,"children":30,"icon":32},"Connection","\u002Fconnection","2.connection\u002F1.index",[31,33,38,43],{"title":27,"path":28,"stem":29,"icon":32},"i-lucide-server",{"title":34,"path":35,"stem":36,"icon":37},"Basic Connection","\u002Fconnection\u002Fbasic","2.connection\u002F2.basic","i-lucide-plug",{"title":39,"path":40,"stem":41,"icon":42},"Connection Options","\u002Fconnection\u002Foptions","2.connection\u002F3.options","i-lucide-settings-2",{"title":44,"path":45,"stem":46,"icon":47},"Database Operations","\u002Fconnection\u002Fdatabase","2.connection\u002F4.database","i-lucide-database",{"title":49,"path":50,"stem":51,"children":52,"icon":47},"CRUD Operations","\u002Fcrud-operations","3.crud-operations\u002F1.index",[53,54,59,64,69,74,79],{"title":49,"path":50,"stem":51,"icon":47},{"title":55,"path":56,"stem":57,"icon":58},"Insert Operations","\u002Fcrud-operations\u002Finsert","3.crud-operations\u002F2.insert","i-lucide-plus-square",{"title":60,"path":61,"stem":62,"icon":63},"Query Operations","\u002Fcrud-operations\u002Fquery","3.crud-operations\u002F3.query","i-lucide-search",{"title":65,"path":66,"stem":67,"icon":68},"Update Operations","\u002Fcrud-operations\u002Fupdate","3.crud-operations\u002F4.update","i-lucide-edit",{"title":70,"path":71,"stem":72,"icon":73},"Delete Operations","\u002Fcrud-operations\u002Fdelete","3.crud-operations\u002F5.delete","i-lucide-trash",{"title":75,"path":76,"stem":77,"icon":78},"Async Operations","\u002Fcrud-operations\u002Fasync","3.crud-operations\u002F6.async","i-lucide-cpu",{"title":80,"path":81,"stem":82,"icon":83},"Query Operators","\u002Fcrud-operations\u002Foperators","3.crud-operations\u002F7.operators","i-lucide-filter",{"title":85,"path":86,"stem":87,"children":88,"icon":90},"Advanced Features","\u002Fadvanced","4.advanced\u002F1.index",[89,91,96],{"title":85,"path":86,"stem":87,"icon":90},"i-lucide-zap",{"title":92,"path":93,"stem":94,"icon":95},"Aggregation Pipelines","\u002Fadvanced\u002Faggregation","4.advanced\u002F2.aggregation","i-lucide-bar-chart-3",{"title":97,"path":98,"stem":99,"children":100,"icon":63},"Manage Indexes","\u002Fadvanced\u002Findexes","4.advanced\u002F3.indexes",[101],{"title":97,"path":98,"stem":99,"icon":63},{"title":103,"path":104,"stem":105,"children":106,"icon":108},"Examples","\u002Fexamples","5.examples\u002F1.index",[107,109,114,119,124],{"title":103,"path":104,"stem":105,"icon":108},"i-lucide-code",{"title":110,"path":111,"stem":112,"icon":113},"Basic Examples","\u002Fexamples\u002Fbasic","5.examples\u002F2.basic","i-lucide-book-open",{"title":115,"path":116,"stem":117,"icon":118},"Player Systems","\u002Fexamples\u002Fplayer-systems","5.examples\u002F3.player-systems","i-lucide-users",{"title":120,"path":121,"stem":122,"icon":123},"Game Systems","\u002Fexamples\u002Fgame-systems","5.examples\u002F4.game-systems","i-lucide-gamepad-2",{"title":125,"path":126,"stem":127,"icon":128},"Server Administration","\u002Fexamples\u002Fadministration","5.examples\u002F5.administration","i-lucide-shield",{"title":130,"path":131,"stem":132,"children":133,"icon":113},"API Reference","\u002Fapi-reference","6.api-reference\u002F1.index",[134,135,139,143,147],{"title":130,"path":131,"stem":132,"icon":113},{"title":136,"path":137,"stem":138},"MongoDB Global","\u002Fapi-reference\u002Fglobal","6.api-reference\u002F2.global",{"title":140,"path":141,"stem":142},"MongoDBClient","\u002Fapi-reference\u002Fclient","6.api-reference\u002F3.client",{"title":144,"path":145,"stem":146},"MongoDBDatabase","\u002Fapi-reference\u002Fdatabase","6.api-reference\u002F4.database",{"title":148,"path":149,"stem":150},"MongoDBCollection","\u002Fapi-reference\u002Fcollection","6.api-reference\u002F5.collection",{"id":152,"title":97,"body":153,"description":2969,"extension":2970,"links":2971,"meta":2972,"navigation":2973,"path":98,"seo":2974,"stem":99,"__hash__":2975},"docs\u002F4.advanced\u002F3.indexes.md",{"type":154,"value":155,"toc":2931},"minimark",[156,161,165,170,173,184,187,193,197,202,239,243,265,269,283,287,291,294,456,460,463,578,582,585,705,709,712,1005,1009,1013,1096,1100,1130,1141,1145,1149,1201,1205,1315,1319,1481,1485,1551,1555,1559,1562,1653,1657,1660,1734,1738,1741,1811,1815,1818,1829,1832,1836,1885,1889,1893,2196,2200,2378,2382,2747,2751,2754,2910,2914,2927],[157,158,160],"h1",{"id":159},"index-management","Index Management",[162,163,164],"p",{},"Indexes are essential for database performance. They allow MongoDB to efficiently locate documents without scanning every document in a collection.",[166,167,169],"h2",{"id":168},"why-use-indexes","Why Use Indexes?",[162,171,172],{},"Without an index:",[174,175,180],"pre",{"className":176,"code":178,"language":179},[177],"language-text","Query: Find player by steamid\nProcess: Scan ALL documents → Find match → Return\n","text",[181,182,178],"code",{"__ignoreMap":183},"",[162,185,186],{},"With an index:",[174,188,191],{"className":189,"code":190,"language":179},[177],"Query: Find player by steamid\nProcess: Look up in index → Jump to document → Return\n",[181,192,190],{"__ignoreMap":183},[166,194,196],{"id":195},"creating-indexes","Creating Indexes",[198,199,201],"h3",{"id":200},"syntax","Syntax",[174,203,207],{"className":204,"code":205,"language":206,"meta":183,"style":183},"language-lua shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","local indexName = collection:CreateIndex(keys, unique, name)\n","lua",[181,208,209],{"__ignoreMap":183},[210,211,214,218,222,225,229,232,236],"span",{"class":212,"line":213},"line",1,[210,215,217],{"class":216},"sMK4o","local",[210,219,221],{"class":220},"sTEyZ"," indexName ",[210,223,224],{"class":216},"=",[210,226,228],{"class":227},"sBMFI"," collection",[210,230,231],{"class":220},":",[210,233,235],{"class":234},"s2Zo4","CreateIndex",[210,237,238],{"class":220},"(keys, unique, name)\n",[198,240,242],{"id":241},"parameters","Parameters",[244,245,246,253,259],"ul",{},[247,248,249,252],"li",{},[181,250,251],{},"keys"," (table): Fields to index with sort direction (1 = ascending, -1 = descending)",[247,254,255,258],{},[181,256,257],{},"unique"," (boolean): Enforce unique values",[247,260,261,264],{},[181,262,263],{},"name"," (string): Custom index name",[198,266,268],{"id":267},"returns","Returns",[244,270,271,277],{},[247,272,273,276],{},[181,274,275],{},"string",": Name of created index",[247,278,279,282],{},[181,280,281],{},"nil",": On failure",[166,284,286],{"id":285},"index-types","Index Types",[198,288,290],{"id":289},"single-field-index","Single Field Index",[162,292,293],{},"Index on one field:",[174,295,297],{"className":204,"code":296,"language":206,"meta":183,"style":183},"-- Ascending index on steamid (unique)\nlocal name = players:CreateIndex(\n    { steamid = 1 },\n    true,               -- unique\n    \"steamid_unique\"\n)\nprint(\"Created index:\", name)\n\n-- Descending index on level\nplayers:CreateIndex(\n    { level = -1 },\n    false,\n    \"level_desc\"\n)\n",[181,298,299,305,325,340,352,365,371,391,398,404,416,432,441,451],{"__ignoreMap":183},[210,300,301],{"class":212,"line":213},[210,302,304],{"class":303},"sHwdD","-- Ascending index on steamid (unique)\n",[210,306,308,310,313,315,318,320,322],{"class":212,"line":307},2,[210,309,217],{"class":216},[210,311,312],{"class":220}," name ",[210,314,224],{"class":216},[210,316,317],{"class":227}," players",[210,319,231],{"class":220},[210,321,235],{"class":234},[210,323,324],{"class":220},"(\n",[210,326,328,331,333,337],{"class":212,"line":327},3,[210,329,330],{"class":220},"    { steamid ",[210,332,224],{"class":216},[210,334,336],{"class":335},"sbssI"," 1",[210,338,339],{"class":220}," },\n",[210,341,343,346,349],{"class":212,"line":342},4,[210,344,345],{"class":216},"    true",[210,347,348],{"class":220},",               ",[210,350,351],{"class":303},"-- unique\n",[210,353,355,358,362],{"class":212,"line":354},5,[210,356,357],{"class":216},"    \"",[210,359,361],{"class":360},"sfazB","steamid_unique",[210,363,364],{"class":216},"\"\n",[210,366,368],{"class":212,"line":367},6,[210,369,370],{"class":220},")\n",[210,372,374,377,380,383,386,388],{"class":212,"line":373},7,[210,375,376],{"class":234},"print",[210,378,379],{"class":220},"(",[210,381,382],{"class":216},"\"",[210,384,385],{"class":360},"Created index:",[210,387,382],{"class":216},[210,389,390],{"class":220},", name)\n",[210,392,394],{"class":212,"line":393},8,[210,395,397],{"emptyLinePlaceholder":396},true,"\n",[210,399,401],{"class":212,"line":400},9,[210,402,403],{"class":303},"-- Descending index on level\n",[210,405,407,410,412,414],{"class":212,"line":406},10,[210,408,409],{"class":227},"players",[210,411,231],{"class":220},[210,413,235],{"class":234},[210,415,324],{"class":220},[210,417,419,422,424,427,430],{"class":212,"line":418},11,[210,420,421],{"class":220},"    { level ",[210,423,224],{"class":216},[210,425,426],{"class":216}," -",[210,428,429],{"class":335},"1",[210,431,339],{"class":220},[210,433,435,438],{"class":212,"line":434},12,[210,436,437],{"class":216},"    false",[210,439,440],{"class":220},",\n",[210,442,444,446,449],{"class":212,"line":443},13,[210,445,357],{"class":216},[210,447,448],{"class":360},"level_desc",[210,450,364],{"class":216},[210,452,454],{"class":212,"line":453},14,[210,455,370],{"class":220},[198,457,459],{"id":458},"compound-index","Compound Index",[162,461,462],{},"Index on multiple fields:",[174,464,466],{"className":204,"code":465,"language":206,"meta":183,"style":183},"-- Index on class and level\nplayers:CreateIndex(\n    { class = 1, level = -1 },\n    false,\n    \"class_level\"\n)\n\n-- Useful for queries like:\nplayers:Find({ class = \"Warrior\", level = { [\"$gte\"] = 10 } })\n",[181,467,468,473,483,503,509,518,522,526,531],{"__ignoreMap":183},[210,469,470],{"class":212,"line":213},[210,471,472],{"class":303},"-- Index on class and level\n",[210,474,475,477,479,481],{"class":212,"line":307},[210,476,409],{"class":227},[210,478,231],{"class":220},[210,480,235],{"class":234},[210,482,324],{"class":220},[210,484,485,488,490,492,495,497,499,501],{"class":212,"line":327},[210,486,487],{"class":220},"    { class ",[210,489,224],{"class":216},[210,491,336],{"class":335},[210,493,494],{"class":220},", level ",[210,496,224],{"class":216},[210,498,426],{"class":216},[210,500,429],{"class":335},[210,502,339],{"class":220},[210,504,505,507],{"class":212,"line":342},[210,506,437],{"class":216},[210,508,440],{"class":220},[210,510,511,513,516],{"class":212,"line":354},[210,512,357],{"class":216},[210,514,515],{"class":360},"class_level",[210,517,364],{"class":216},[210,519,520],{"class":212,"line":367},[210,521,370],{"class":220},[210,523,524],{"class":212,"line":373},[210,525,397],{"emptyLinePlaceholder":396},[210,527,528],{"class":212,"line":393},[210,529,530],{"class":303},"-- Useful for queries like:\n",[210,532,533,535,537,540,543,545,548,551,553,555,557,560,562,565,567,570,572,575],{"class":212,"line":400},[210,534,409],{"class":227},[210,536,231],{"class":220},[210,538,539],{"class":234},"Find",[210,541,542],{"class":220},"({ class ",[210,544,224],{"class":216},[210,546,547],{"class":216}," \"",[210,549,550],{"class":360},"Warrior",[210,552,382],{"class":216},[210,554,494],{"class":220},[210,556,224],{"class":216},[210,558,559],{"class":220}," { [",[210,561,382],{"class":216},[210,563,564],{"class":360},"$gte",[210,566,382],{"class":216},[210,568,569],{"class":220},"] ",[210,571,224],{"class":216},[210,573,574],{"class":335}," 10",[210,576,577],{"class":220}," } })\n",[198,579,581],{"id":580},"text-index","Text Index",[162,583,584],{},"For text search:",[174,586,588],{"className":204,"code":587,"language":206,"meta":183,"style":183},"-- Create text index on username\nplayers:CreateIndex(\n    { username = \"text\" },\n    false,\n    \"username_text\"\n)\n\n-- Now you can search:\nplayers:Find({\n    [\"$text\"] = { [\"$search\"] = \"player\" }\n})\n",[181,589,590,595,605,622,628,637,641,645,650,661,700],{"__ignoreMap":183},[210,591,592],{"class":212,"line":213},[210,593,594],{"class":303},"-- Create text index on username\n",[210,596,597,599,601,603],{"class":212,"line":307},[210,598,409],{"class":227},[210,600,231],{"class":220},[210,602,235],{"class":234},[210,604,324],{"class":220},[210,606,607,610,612,614,616,619],{"class":212,"line":327},[210,608,609],{"class":220},"    { username ",[210,611,224],{"class":216},[210,613,547],{"class":216},[210,615,179],{"class":360},[210,617,618],{"class":216},"\" ",[210,620,621],{"class":220},"},\n",[210,623,624,626],{"class":212,"line":342},[210,625,437],{"class":216},[210,627,440],{"class":220},[210,629,630,632,635],{"class":212,"line":354},[210,631,357],{"class":216},[210,633,634],{"class":360},"username_text",[210,636,364],{"class":216},[210,638,639],{"class":212,"line":367},[210,640,370],{"class":220},[210,642,643],{"class":212,"line":373},[210,644,397],{"emptyLinePlaceholder":396},[210,646,647],{"class":212,"line":393},[210,648,649],{"class":303},"-- Now you can search:\n",[210,651,652,654,656,658],{"class":212,"line":400},[210,653,409],{"class":227},[210,655,231],{"class":220},[210,657,539],{"class":234},[210,659,660],{"class":220},"({\n",[210,662,663,666,668,671,673,675,677,679,681,684,686,688,690,692,695,697],{"class":212,"line":406},[210,664,665],{"class":220},"    [",[210,667,382],{"class":216},[210,669,670],{"class":360},"$text",[210,672,382],{"class":216},[210,674,569],{"class":220},[210,676,224],{"class":216},[210,678,559],{"class":220},[210,680,382],{"class":216},[210,682,683],{"class":360},"$search",[210,685,382],{"class":216},[210,687,569],{"class":220},[210,689,224],{"class":216},[210,691,547],{"class":216},[210,693,694],{"class":360},"player",[210,696,618],{"class":216},[210,698,699],{"class":220},"}\n",[210,701,702],{"class":212,"line":418},[210,703,704],{"class":220},"})\n",[166,706,708],{"id":707},"listing-indexes","Listing Indexes",[162,710,711],{},"Get all indexes on a collection:",[174,713,715],{"className":204,"code":714,"language":206,"meta":183,"style":183},"local indexes = collection:ListIndexes()\n\nif indexes then\n    print(\"Indexes on collection:\")\n    for i, index in ipairs(indexes) do\n        print(string.format(\"%d. %s\", i, index.name or \"unnamed\"))\n\n        -- Print keys\n        if index.key then\n            local keys = {}\n            for field, direction in pairs(index.key) do\n                table.insert(keys, field .. \":\" .. tostring(direction))\n            end\n            print(\"   Keys: \" .. table.concat(keys, \", \"))\n        end\n\n        -- Show if unique\n        if index.unique then\n            print(\"   Unique: true\")\n        end\n    end\nend\n",[181,716,717,736,740,751,767,787,824,828,833,847,860,883,908,913,944,950,955,961,972,988,993,999],{"__ignoreMap":183},[210,718,719,721,724,726,728,730,733],{"class":212,"line":213},[210,720,217],{"class":216},[210,722,723],{"class":220}," indexes ",[210,725,224],{"class":216},[210,727,228],{"class":227},[210,729,231],{"class":220},[210,731,732],{"class":234},"ListIndexes",[210,734,735],{"class":220},"()\n",[210,737,738],{"class":212,"line":307},[210,739,397],{"emptyLinePlaceholder":396},[210,741,742,746,748],{"class":212,"line":327},[210,743,745],{"class":744},"s7zQu","if",[210,747,723],{"class":220},[210,749,750],{"class":744},"then\n",[210,752,753,756,758,760,763,765],{"class":212,"line":342},[210,754,755],{"class":234},"    print",[210,757,379],{"class":220},[210,759,382],{"class":216},[210,761,762],{"class":360},"Indexes on collection:",[210,764,382],{"class":216},[210,766,370],{"class":220},[210,768,769,772,775,778,781,784],{"class":212,"line":354},[210,770,771],{"class":744},"    for",[210,773,774],{"class":220}," i, index ",[210,776,777],{"class":744},"in",[210,779,780],{"class":234}," ipairs",[210,782,783],{"class":220},"(indexes) ",[210,785,786],{"class":744},"do\n",[210,788,789,792,794,797,799,801,804,806,809,811,814,816,819,821],{"class":212,"line":367},[210,790,791],{"class":234},"        print",[210,793,379],{"class":220},[210,795,796],{"class":234},"string.format",[210,798,379],{"class":220},[210,800,382],{"class":216},[210,802,803],{"class":360},"%d. %s",[210,805,382],{"class":216},[210,807,808],{"class":220},", i, index.",[210,810,263],{"class":227},[210,812,813],{"class":216}," or",[210,815,547],{"class":216},[210,817,818],{"class":360},"unnamed",[210,820,382],{"class":216},[210,822,823],{"class":220},"))\n",[210,825,826],{"class":212,"line":373},[210,827,397],{"emptyLinePlaceholder":396},[210,829,830],{"class":212,"line":393},[210,831,832],{"class":303},"        -- Print keys\n",[210,834,835,838,841,844],{"class":212,"line":400},[210,836,837],{"class":744},"        if",[210,839,840],{"class":220}," index.",[210,842,843],{"class":227},"key",[210,845,846],{"class":744}," then\n",[210,848,849,852,855,857],{"class":212,"line":406},[210,850,851],{"class":216},"            local",[210,853,854],{"class":220}," keys ",[210,856,224],{"class":216},[210,858,859],{"class":220}," {}\n",[210,861,862,865,868,870,873,876,878,881],{"class":212,"line":418},[210,863,864],{"class":744},"            for",[210,866,867],{"class":220}," field, direction ",[210,869,777],{"class":744},[210,871,872],{"class":234}," pairs",[210,874,875],{"class":220},"(index.",[210,877,843],{"class":227},[210,879,880],{"class":220},") ",[210,882,786],{"class":744},[210,884,885,888,891,894,896,898,900,902,905],{"class":212,"line":434},[210,886,887],{"class":234},"                table.insert",[210,889,890],{"class":220},"(keys, field ",[210,892,893],{"class":216},"..",[210,895,547],{"class":216},[210,897,231],{"class":360},[210,899,618],{"class":216},[210,901,893],{"class":216},[210,903,904],{"class":234}," tostring",[210,906,907],{"class":220},"(direction))\n",[210,909,910],{"class":212,"line":443},[210,911,912],{"class":744},"            end\n",[210,914,915,918,920,922,925,927,929,932,935,937,940,942],{"class":212,"line":453},[210,916,917],{"class":234},"            print",[210,919,379],{"class":220},[210,921,382],{"class":216},[210,923,924],{"class":360},"   Keys: ",[210,926,618],{"class":216},[210,928,893],{"class":216},[210,930,931],{"class":234}," table.concat",[210,933,934],{"class":220},"(keys, ",[210,936,382],{"class":216},[210,938,939],{"class":360},", ",[210,941,382],{"class":216},[210,943,823],{"class":220},[210,945,947],{"class":212,"line":946},15,[210,948,949],{"class":744},"        end\n",[210,951,953],{"class":212,"line":952},16,[210,954,397],{"emptyLinePlaceholder":396},[210,956,958],{"class":212,"line":957},17,[210,959,960],{"class":303},"        -- Show if unique\n",[210,962,964,966,968,970],{"class":212,"line":963},18,[210,965,837],{"class":744},[210,967,840],{"class":220},[210,969,257],{"class":227},[210,971,846],{"class":744},[210,973,975,977,979,981,984,986],{"class":212,"line":974},19,[210,976,917],{"class":234},[210,978,379],{"class":220},[210,980,382],{"class":216},[210,982,983],{"class":360},"   Unique: true",[210,985,382],{"class":216},[210,987,370],{"class":220},[210,989,991],{"class":212,"line":990},20,[210,992,949],{"class":744},[210,994,996],{"class":212,"line":995},21,[210,997,998],{"class":744},"    end\n",[210,1000,1002],{"class":212,"line":1001},22,[210,1003,1004],{"class":744},"end\n",[166,1006,1008],{"id":1007},"dropping-indexes","Dropping Indexes",[198,1010,1012],{"id":1011},"drop-specific-index","Drop Specific Index",[174,1014,1016],{"className":204,"code":1015,"language":206,"meta":183,"style":183},"local success = collection:DropIndex(\"index_name\")\n\nif success then\n    print(\"✓ Index dropped\")\nelse\n    print(\"✗ Failed to drop index\")\nend\n",[181,1017,1018,1045,1049,1057,1072,1077,1092],{"__ignoreMap":183},[210,1019,1020,1022,1025,1027,1029,1031,1034,1036,1038,1041,1043],{"class":212,"line":213},[210,1021,217],{"class":216},[210,1023,1024],{"class":220}," success ",[210,1026,224],{"class":216},[210,1028,228],{"class":227},[210,1030,231],{"class":220},[210,1032,1033],{"class":234},"DropIndex",[210,1035,379],{"class":220},[210,1037,382],{"class":216},[210,1039,1040],{"class":360},"index_name",[210,1042,382],{"class":216},[210,1044,370],{"class":220},[210,1046,1047],{"class":212,"line":307},[210,1048,397],{"emptyLinePlaceholder":396},[210,1050,1051,1053,1055],{"class":212,"line":327},[210,1052,745],{"class":744},[210,1054,1024],{"class":220},[210,1056,750],{"class":744},[210,1058,1059,1061,1063,1065,1068,1070],{"class":212,"line":342},[210,1060,755],{"class":234},[210,1062,379],{"class":220},[210,1064,382],{"class":216},[210,1066,1067],{"class":360},"✓ Index dropped",[210,1069,382],{"class":216},[210,1071,370],{"class":220},[210,1073,1074],{"class":212,"line":354},[210,1075,1076],{"class":744},"else\n",[210,1078,1079,1081,1083,1085,1088,1090],{"class":212,"line":367},[210,1080,755],{"class":234},[210,1082,379],{"class":220},[210,1084,382],{"class":216},[210,1086,1087],{"class":360},"✗ Failed to drop index",[210,1089,382],{"class":216},[210,1091,370],{"class":220},[210,1093,1094],{"class":212,"line":373},[210,1095,1004],{"class":744},[198,1097,1099],{"id":1098},"drop-all-indexes","Drop All Indexes",[174,1101,1103],{"className":204,"code":1102,"language":206,"meta":183,"style":183},"-- Drop all indexes except _id\ncollection:DropIndex(\"*\")\n",[181,1104,1105,1110],{"__ignoreMap":183},[210,1106,1107],{"class":212,"line":213},[210,1108,1109],{"class":303},"-- Drop all indexes except _id\n",[210,1111,1112,1115,1117,1119,1121,1123,1126,1128],{"class":212,"line":307},[210,1113,1114],{"class":227},"collection",[210,1116,231],{"class":220},[210,1118,1033],{"class":234},[210,1120,379],{"class":220},[210,1122,382],{"class":216},[210,1124,1125],{"class":360},"*",[210,1127,382],{"class":216},[210,1129,370],{"class":220},[1131,1132,1134],"alert",{"type":1133},"warning",[162,1135,1136,1137,1140],{},"The ",[181,1138,1139],{},"_id"," index cannot be dropped and is always present.",[166,1142,1144],{"id":1143},"index-strategies","Index Strategies",[198,1146,1148],{"id":1147},"for-player-lookups","For Player Lookups",[174,1150,1152],{"className":204,"code":1151,"language":206,"meta":183,"style":183},"-- Most common query: find by SteamID\nplayers:CreateIndex(\n    { steamid = 1 },\n    true,  -- Unique!\n    \"steamid_unique\"\n)\n",[181,1153,1154,1159,1169,1179,1189,1197],{"__ignoreMap":183},[210,1155,1156],{"class":212,"line":213},[210,1157,1158],{"class":303},"-- Most common query: find by SteamID\n",[210,1160,1161,1163,1165,1167],{"class":212,"line":307},[210,1162,409],{"class":227},[210,1164,231],{"class":220},[210,1166,235],{"class":234},[210,1168,324],{"class":220},[210,1170,1171,1173,1175,1177],{"class":212,"line":327},[210,1172,330],{"class":220},[210,1174,224],{"class":216},[210,1176,336],{"class":335},[210,1178,339],{"class":220},[210,1180,1181,1183,1186],{"class":212,"line":342},[210,1182,345],{"class":216},[210,1184,1185],{"class":220},",  ",[210,1187,1188],{"class":303},"-- Unique!\n",[210,1190,1191,1193,1195],{"class":212,"line":354},[210,1192,357],{"class":216},[210,1194,361],{"class":360},[210,1196,364],{"class":216},[210,1198,1199],{"class":212,"line":367},[210,1200,370],{"class":220},[198,1202,1204],{"id":1203},"for-leaderboards","For Leaderboards",[174,1206,1208],{"className":204,"code":1207,"language":206,"meta":183,"style":183},"-- Sort by score descending\nplayers:CreateIndex(\n    { score = -1 },\n    false,\n    \"score_desc\"\n)\n\n-- Or compound for filtered leaderboards\nplayers:CreateIndex(\n    { banned = 1, score = -1 },\n    false,\n    \"active_score\"\n)\n",[181,1209,1210,1215,1225,1238,1244,1253,1257,1261,1266,1276,1296,1302,1311],{"__ignoreMap":183},[210,1211,1212],{"class":212,"line":213},[210,1213,1214],{"class":303},"-- Sort by score descending\n",[210,1216,1217,1219,1221,1223],{"class":212,"line":307},[210,1218,409],{"class":227},[210,1220,231],{"class":220},[210,1222,235],{"class":234},[210,1224,324],{"class":220},[210,1226,1227,1230,1232,1234,1236],{"class":212,"line":327},[210,1228,1229],{"class":220},"    { score ",[210,1231,224],{"class":216},[210,1233,426],{"class":216},[210,1235,429],{"class":335},[210,1237,339],{"class":220},[210,1239,1240,1242],{"class":212,"line":342},[210,1241,437],{"class":216},[210,1243,440],{"class":220},[210,1245,1246,1248,1251],{"class":212,"line":354},[210,1247,357],{"class":216},[210,1249,1250],{"class":360},"score_desc",[210,1252,364],{"class":216},[210,1254,1255],{"class":212,"line":367},[210,1256,370],{"class":220},[210,1258,1259],{"class":212,"line":373},[210,1260,397],{"emptyLinePlaceholder":396},[210,1262,1263],{"class":212,"line":393},[210,1264,1265],{"class":303},"-- Or compound for filtered leaderboards\n",[210,1267,1268,1270,1272,1274],{"class":212,"line":400},[210,1269,409],{"class":227},[210,1271,231],{"class":220},[210,1273,235],{"class":234},[210,1275,324],{"class":220},[210,1277,1278,1281,1283,1285,1288,1290,1292,1294],{"class":212,"line":406},[210,1279,1280],{"class":220},"    { banned ",[210,1282,224],{"class":216},[210,1284,336],{"class":335},[210,1286,1287],{"class":220},", score ",[210,1289,224],{"class":216},[210,1291,426],{"class":216},[210,1293,429],{"class":335},[210,1295,339],{"class":220},[210,1297,1298,1300],{"class":212,"line":418},[210,1299,437],{"class":216},[210,1301,440],{"class":220},[210,1303,1304,1306,1309],{"class":212,"line":434},[210,1305,357],{"class":216},[210,1307,1308],{"class":360},"active_score",[210,1310,364],{"class":216},[210,1312,1313],{"class":212,"line":443},[210,1314,370],{"class":220},[198,1316,1318],{"id":1317},"for-filtering","For Filtering",[174,1320,1322],{"className":204,"code":1321,"language":206,"meta":183,"style":183},"-- Common filter fields\nplayers:CreateIndex({ class = 1 }, false, \"class_index\")\nplayers:CreateIndex({ level = 1 }, false, \"level_index\")\nplayers:CreateIndex({ vip = 1 }, false, \"vip_index\")\n\n-- Or compound for common query patterns\nplayers:CreateIndex(\n    { class = 1, level = 1, vip = 1 },\n    false,\n    \"filter_compound\"\n)\n",[181,1323,1324,1329,1360,1390,1420,1424,1429,1439,1462,1468,1477],{"__ignoreMap":183},[210,1325,1326],{"class":212,"line":213},[210,1327,1328],{"class":303},"-- Common filter fields\n",[210,1330,1331,1333,1335,1337,1339,1341,1343,1346,1349,1351,1353,1356,1358],{"class":212,"line":307},[210,1332,409],{"class":227},[210,1334,231],{"class":220},[210,1336,235],{"class":234},[210,1338,542],{"class":220},[210,1340,224],{"class":216},[210,1342,336],{"class":335},[210,1344,1345],{"class":220}," }, ",[210,1347,1348],{"class":216},"false",[210,1350,939],{"class":220},[210,1352,382],{"class":216},[210,1354,1355],{"class":360},"class_index",[210,1357,382],{"class":216},[210,1359,370],{"class":220},[210,1361,1362,1364,1366,1368,1371,1373,1375,1377,1379,1381,1383,1386,1388],{"class":212,"line":327},[210,1363,409],{"class":227},[210,1365,231],{"class":220},[210,1367,235],{"class":234},[210,1369,1370],{"class":220},"({ level ",[210,1372,224],{"class":216},[210,1374,336],{"class":335},[210,1376,1345],{"class":220},[210,1378,1348],{"class":216},[210,1380,939],{"class":220},[210,1382,382],{"class":216},[210,1384,1385],{"class":360},"level_index",[210,1387,382],{"class":216},[210,1389,370],{"class":220},[210,1391,1392,1394,1396,1398,1401,1403,1405,1407,1409,1411,1413,1416,1418],{"class":212,"line":342},[210,1393,409],{"class":227},[210,1395,231],{"class":220},[210,1397,235],{"class":234},[210,1399,1400],{"class":220},"({ vip ",[210,1402,224],{"class":216},[210,1404,336],{"class":335},[210,1406,1345],{"class":220},[210,1408,1348],{"class":216},[210,1410,939],{"class":220},[210,1412,382],{"class":216},[210,1414,1415],{"class":360},"vip_index",[210,1417,382],{"class":216},[210,1419,370],{"class":220},[210,1421,1422],{"class":212,"line":354},[210,1423,397],{"emptyLinePlaceholder":396},[210,1425,1426],{"class":212,"line":367},[210,1427,1428],{"class":303},"-- Or compound for common query patterns\n",[210,1430,1431,1433,1435,1437],{"class":212,"line":373},[210,1432,409],{"class":227},[210,1434,231],{"class":220},[210,1436,235],{"class":234},[210,1438,324],{"class":220},[210,1440,1441,1443,1445,1447,1449,1451,1453,1456,1458,1460],{"class":212,"line":393},[210,1442,487],{"class":220},[210,1444,224],{"class":216},[210,1446,336],{"class":335},[210,1448,494],{"class":220},[210,1450,224],{"class":216},[210,1452,336],{"class":335},[210,1454,1455],{"class":220},", vip ",[210,1457,224],{"class":216},[210,1459,336],{"class":335},[210,1461,339],{"class":220},[210,1463,1464,1466],{"class":212,"line":400},[210,1465,437],{"class":216},[210,1467,440],{"class":220},[210,1469,1470,1472,1475],{"class":212,"line":406},[210,1471,357],{"class":216},[210,1473,1474],{"class":360},"filter_compound",[210,1476,364],{"class":216},[210,1478,1479],{"class":212,"line":418},[210,1480,370],{"class":220},[198,1482,1484],{"id":1483},"for-time-based-queries","For Time-Based Queries",[174,1486,1488],{"className":204,"code":1487,"language":206,"meta":183,"style":183},"-- Index on timestamps\nplayers:CreateIndex(\n    { last_login = -1 },\n    false,\n    \"recent_login\"\n)\n\n-- TTL index for auto-expiring documents\n-- (Note: TTL indexes are managed by MongoDB server)\n",[181,1489,1490,1495,1505,1518,1524,1533,1537,1541,1546],{"__ignoreMap":183},[210,1491,1492],{"class":212,"line":213},[210,1493,1494],{"class":303},"-- Index on timestamps\n",[210,1496,1497,1499,1501,1503],{"class":212,"line":307},[210,1498,409],{"class":227},[210,1500,231],{"class":220},[210,1502,235],{"class":234},[210,1504,324],{"class":220},[210,1506,1507,1510,1512,1514,1516],{"class":212,"line":327},[210,1508,1509],{"class":220},"    { last_login ",[210,1511,224],{"class":216},[210,1513,426],{"class":216},[210,1515,429],{"class":335},[210,1517,339],{"class":220},[210,1519,1520,1522],{"class":212,"line":342},[210,1521,437],{"class":216},[210,1523,440],{"class":220},[210,1525,1526,1528,1531],{"class":212,"line":354},[210,1527,357],{"class":216},[210,1529,1530],{"class":360},"recent_login",[210,1532,364],{"class":216},[210,1534,1535],{"class":212,"line":367},[210,1536,370],{"class":220},[210,1538,1539],{"class":212,"line":373},[210,1540,397],{"emptyLinePlaceholder":396},[210,1542,1543],{"class":212,"line":393},[210,1544,1545],{"class":303},"-- TTL index for auto-expiring documents\n",[210,1547,1548],{"class":212,"line":400},[210,1549,1550],{"class":303},"-- (Note: TTL indexes are managed by MongoDB server)\n",[166,1552,1554],{"id":1553},"best-practices","Best Practices",[198,1556,1558],{"id":1557},"_1-index-query-patterns","1. Index Query Patterns",[162,1560,1561],{},"Create indexes based on how you query:",[174,1563,1565],{"className":204,"code":1564,"language":206,"meta":183,"style":183},"-- If you query like this:\nplayers:Find({ class = \"Warrior\", level = { [\"$gte\"] = 10 } })\n\n-- Create this index:\nplayers:CreateIndex({ class = 1, level = 1 }, false, \"class_level\")\n",[181,1566,1567,1572,1610,1614,1619],{"__ignoreMap":183},[210,1568,1569],{"class":212,"line":213},[210,1570,1571],{"class":303},"-- If you query like this:\n",[210,1573,1574,1576,1578,1580,1582,1584,1586,1588,1590,1592,1594,1596,1598,1600,1602,1604,1606,1608],{"class":212,"line":307},[210,1575,409],{"class":227},[210,1577,231],{"class":220},[210,1579,539],{"class":234},[210,1581,542],{"class":220},[210,1583,224],{"class":216},[210,1585,547],{"class":216},[210,1587,550],{"class":360},[210,1589,382],{"class":216},[210,1591,494],{"class":220},[210,1593,224],{"class":216},[210,1595,559],{"class":220},[210,1597,382],{"class":216},[210,1599,564],{"class":360},[210,1601,382],{"class":216},[210,1603,569],{"class":220},[210,1605,224],{"class":216},[210,1607,574],{"class":335},[210,1609,577],{"class":220},[210,1611,1612],{"class":212,"line":327},[210,1613,397],{"emptyLinePlaceholder":396},[210,1615,1616],{"class":212,"line":342},[210,1617,1618],{"class":303},"-- Create this index:\n",[210,1620,1621,1623,1625,1627,1629,1631,1633,1635,1637,1639,1641,1643,1645,1647,1649,1651],{"class":212,"line":354},[210,1622,409],{"class":227},[210,1624,231],{"class":220},[210,1626,235],{"class":234},[210,1628,542],{"class":220},[210,1630,224],{"class":216},[210,1632,336],{"class":335},[210,1634,494],{"class":220},[210,1636,224],{"class":216},[210,1638,336],{"class":335},[210,1640,1345],{"class":220},[210,1642,1348],{"class":216},[210,1644,939],{"class":220},[210,1646,382],{"class":216},[210,1648,515],{"class":360},[210,1650,382],{"class":216},[210,1652,370],{"class":220},[198,1654,1656],{"id":1655},"_2-consider-index-direction","2. Consider Index Direction",[162,1658,1659],{},"Direction matters for sorting:",[174,1661,1663],{"className":204,"code":1662,"language":206,"meta":183,"style":183},"-- For descending sorts (highest first)\nplayers:CreateIndex({ score = -1 }, false, \"score_desc\")\n\n-- Query uses the index efficiently\nplayers:Find({}, { sort = { score = -1 } })\n",[181,1664,1665,1670,1701,1705,1710],{"__ignoreMap":183},[210,1666,1667],{"class":212,"line":213},[210,1668,1669],{"class":303},"-- For descending sorts (highest first)\n",[210,1671,1672,1674,1676,1678,1681,1683,1685,1687,1689,1691,1693,1695,1697,1699],{"class":212,"line":307},[210,1673,409],{"class":227},[210,1675,231],{"class":220},[210,1677,235],{"class":234},[210,1679,1680],{"class":220},"({ score ",[210,1682,224],{"class":216},[210,1684,426],{"class":216},[210,1686,429],{"class":335},[210,1688,1345],{"class":220},[210,1690,1348],{"class":216},[210,1692,939],{"class":220},[210,1694,382],{"class":216},[210,1696,1250],{"class":360},[210,1698,382],{"class":216},[210,1700,370],{"class":220},[210,1702,1703],{"class":212,"line":327},[210,1704,397],{"emptyLinePlaceholder":396},[210,1706,1707],{"class":212,"line":342},[210,1708,1709],{"class":303},"-- Query uses the index efficiently\n",[210,1711,1712,1714,1716,1718,1721,1723,1726,1728,1730,1732],{"class":212,"line":354},[210,1713,409],{"class":227},[210,1715,231],{"class":220},[210,1717,539],{"class":234},[210,1719,1720],{"class":220},"({}, { sort ",[210,1722,224],{"class":216},[210,1724,1725],{"class":220}," { score ",[210,1727,224],{"class":216},[210,1729,426],{"class":216},[210,1731,429],{"class":335},[210,1733,577],{"class":220},[198,1735,1737],{"id":1736},"_3-compound-index-order","3. Compound Index Order",[162,1739,1740],{},"Put equality filters before range filters:",[174,1742,1744],{"className":204,"code":1743,"language":206,"meta":183,"style":183},"-- Good: Equality (class) before range (level)\n{ class = 1, level = 1 }\n\n-- For query:\n{ class = \"Warrior\", level = { [\"$gte\"] = 10 } }\n",[181,1745,1746,1751,1769,1773,1778],{"__ignoreMap":183},[210,1747,1748],{"class":212,"line":213},[210,1749,1750],{"class":303},"-- Good: Equality (class) before range (level)\n",[210,1752,1753,1756,1758,1760,1762,1764,1766],{"class":212,"line":307},[210,1754,1755],{"class":220},"{ class ",[210,1757,224],{"class":216},[210,1759,336],{"class":335},[210,1761,494],{"class":220},[210,1763,224],{"class":216},[210,1765,336],{"class":335},[210,1767,1768],{"class":220}," }\n",[210,1770,1771],{"class":212,"line":327},[210,1772,397],{"emptyLinePlaceholder":396},[210,1774,1775],{"class":212,"line":342},[210,1776,1777],{"class":303},"-- For query:\n",[210,1779,1780,1782,1784,1786,1788,1790,1792,1794,1796,1798,1800,1802,1804,1806,1808],{"class":212,"line":354},[210,1781,1755],{"class":220},[210,1783,224],{"class":216},[210,1785,547],{"class":216},[210,1787,550],{"class":360},[210,1789,382],{"class":216},[210,1791,494],{"class":220},[210,1793,224],{"class":216},[210,1795,559],{"class":220},[210,1797,382],{"class":216},[210,1799,564],{"class":360},[210,1801,382],{"class":216},[210,1803,569],{"class":220},[210,1805,224],{"class":216},[210,1807,574],{"class":335},[210,1809,1810],{"class":220}," } }\n",[198,1812,1814],{"id":1813},"_4-dont-over-index","4. Don't Over-Index",[162,1816,1817],{},"Each index:",[244,1819,1820,1823,1826],{},[247,1821,1822],{},"Uses disk space",[247,1824,1825],{},"Slows down writes",[247,1827,1828],{},"Needs maintenance",[162,1830,1831],{},"Only create indexes you need.",[198,1833,1835],{"id":1834},"_5-use-unique-for-identifiers","5. Use Unique for Identifiers",[174,1837,1839],{"className":204,"code":1838,"language":206,"meta":183,"style":183},"-- Prevent duplicate SteamIDs\nplayers:CreateIndex({ steamid = 1 }, true, \"steamid_unique\")\n\n-- Trying to insert duplicate will fail\n",[181,1840,1841,1846,1876,1880],{"__ignoreMap":183},[210,1842,1843],{"class":212,"line":213},[210,1844,1845],{"class":303},"-- Prevent duplicate SteamIDs\n",[210,1847,1848,1850,1852,1854,1857,1859,1861,1863,1866,1868,1870,1872,1874],{"class":212,"line":307},[210,1849,409],{"class":227},[210,1851,231],{"class":220},[210,1853,235],{"class":234},[210,1855,1856],{"class":220},"({ steamid ",[210,1858,224],{"class":216},[210,1860,336],{"class":335},[210,1862,1345],{"class":220},[210,1864,1865],{"class":216},"true",[210,1867,939],{"class":220},[210,1869,382],{"class":216},[210,1871,361],{"class":360},[210,1873,382],{"class":216},[210,1875,370],{"class":220},[210,1877,1878],{"class":212,"line":327},[210,1879,397],{"emptyLinePlaceholder":396},[210,1881,1882],{"class":212,"line":342},[210,1883,1884],{"class":303},"-- Trying to insert duplicate will fail\n",[166,1886,1888],{"id":1887},"practical-examples","Practical Examples",[198,1890,1892],{"id":1891},"setup-for-player-system","Setup for Player System",[174,1894,1896],{"className":204,"code":1895,"language":206,"meta":183,"style":183},"function SetupPlayerIndexes()\n    local players = db:Collection(\"players\")\n\n    -- Primary lookup\n    players:CreateIndex(\n        { steamid = 1 },\n        true,\n        \"steamid_unique\"\n    )\n\n    -- Leaderboard\n    players:CreateIndex(\n        { score = -1 },\n        false,\n        \"score_desc\"\n    )\n\n    -- Active players\n    players:CreateIndex(\n        { last_login = -1 },\n        false,\n        \"recent_login\"\n    )\n\n    -- Filtering\n    players:CreateIndex(\n        { class = 1, level = 1 },\n        false,\n        \"class_level\"\n    )\n\n    print(\"✓ Player indexes created\")\nend\n\n-- Call on server start\nSetupPlayerIndexes()\n",[181,1897,1898,1908,1936,1940,1945,1956,1967,1974,1983,1988,1992,1997,2007,2020,2027,2035,2039,2043,2048,2058,2071,2077,2085,2090,2095,2101,2112,2130,2137,2146,2151,2156,2172,2177,2182,2188],{"__ignoreMap":183},[210,1899,1900,1903,1906],{"class":212,"line":213},[210,1901,1902],{"class":744},"function",[210,1904,1905],{"class":234}," SetupPlayerIndexes",[210,1907,735],{"class":216},[210,1909,1910,1913,1916,1918,1921,1923,1926,1928,1930,1932,1934],{"class":212,"line":307},[210,1911,1912],{"class":216},"    local",[210,1914,1915],{"class":220}," players ",[210,1917,224],{"class":216},[210,1919,1920],{"class":227}," db",[210,1922,231],{"class":220},[210,1924,1925],{"class":234},"Collection",[210,1927,379],{"class":220},[210,1929,382],{"class":216},[210,1931,409],{"class":360},[210,1933,382],{"class":216},[210,1935,370],{"class":220},[210,1937,1938],{"class":212,"line":327},[210,1939,397],{"emptyLinePlaceholder":396},[210,1941,1942],{"class":212,"line":342},[210,1943,1944],{"class":303},"    -- Primary lookup\n",[210,1946,1947,1950,1952,1954],{"class":212,"line":354},[210,1948,1949],{"class":227},"    players",[210,1951,231],{"class":220},[210,1953,235],{"class":234},[210,1955,324],{"class":220},[210,1957,1958,1961,1963,1965],{"class":212,"line":367},[210,1959,1960],{"class":220},"        { steamid ",[210,1962,224],{"class":216},[210,1964,336],{"class":335},[210,1966,339],{"class":220},[210,1968,1969,1972],{"class":212,"line":373},[210,1970,1971],{"class":216},"        true",[210,1973,440],{"class":220},[210,1975,1976,1979,1981],{"class":212,"line":393},[210,1977,1978],{"class":216},"        \"",[210,1980,361],{"class":360},[210,1982,364],{"class":216},[210,1984,1985],{"class":212,"line":400},[210,1986,1987],{"class":220},"    )\n",[210,1989,1990],{"class":212,"line":406},[210,1991,397],{"emptyLinePlaceholder":396},[210,1993,1994],{"class":212,"line":418},[210,1995,1996],{"class":303},"    -- Leaderboard\n",[210,1998,1999,2001,2003,2005],{"class":212,"line":434},[210,2000,1949],{"class":227},[210,2002,231],{"class":220},[210,2004,235],{"class":234},[210,2006,324],{"class":220},[210,2008,2009,2012,2014,2016,2018],{"class":212,"line":443},[210,2010,2011],{"class":220},"        { score ",[210,2013,224],{"class":216},[210,2015,426],{"class":216},[210,2017,429],{"class":335},[210,2019,339],{"class":220},[210,2021,2022,2025],{"class":212,"line":453},[210,2023,2024],{"class":216},"        false",[210,2026,440],{"class":220},[210,2028,2029,2031,2033],{"class":212,"line":946},[210,2030,1978],{"class":216},[210,2032,1250],{"class":360},[210,2034,364],{"class":216},[210,2036,2037],{"class":212,"line":952},[210,2038,1987],{"class":220},[210,2040,2041],{"class":212,"line":957},[210,2042,397],{"emptyLinePlaceholder":396},[210,2044,2045],{"class":212,"line":963},[210,2046,2047],{"class":303},"    -- Active players\n",[210,2049,2050,2052,2054,2056],{"class":212,"line":974},[210,2051,1949],{"class":227},[210,2053,231],{"class":220},[210,2055,235],{"class":234},[210,2057,324],{"class":220},[210,2059,2060,2063,2065,2067,2069],{"class":212,"line":990},[210,2061,2062],{"class":220},"        { last_login ",[210,2064,224],{"class":216},[210,2066,426],{"class":216},[210,2068,429],{"class":335},[210,2070,339],{"class":220},[210,2072,2073,2075],{"class":212,"line":995},[210,2074,2024],{"class":216},[210,2076,440],{"class":220},[210,2078,2079,2081,2083],{"class":212,"line":1001},[210,2080,1978],{"class":216},[210,2082,1530],{"class":360},[210,2084,364],{"class":216},[210,2086,2088],{"class":212,"line":2087},23,[210,2089,1987],{"class":220},[210,2091,2093],{"class":212,"line":2092},24,[210,2094,397],{"emptyLinePlaceholder":396},[210,2096,2098],{"class":212,"line":2097},25,[210,2099,2100],{"class":303},"    -- Filtering\n",[210,2102,2104,2106,2108,2110],{"class":212,"line":2103},26,[210,2105,1949],{"class":227},[210,2107,231],{"class":220},[210,2109,235],{"class":234},[210,2111,324],{"class":220},[210,2113,2115,2118,2120,2122,2124,2126,2128],{"class":212,"line":2114},27,[210,2116,2117],{"class":220},"        { class ",[210,2119,224],{"class":216},[210,2121,336],{"class":335},[210,2123,494],{"class":220},[210,2125,224],{"class":216},[210,2127,336],{"class":335},[210,2129,339],{"class":220},[210,2131,2133,2135],{"class":212,"line":2132},28,[210,2134,2024],{"class":216},[210,2136,440],{"class":220},[210,2138,2140,2142,2144],{"class":212,"line":2139},29,[210,2141,1978],{"class":216},[210,2143,515],{"class":360},[210,2145,364],{"class":216},[210,2147,2149],{"class":212,"line":2148},30,[210,2150,1987],{"class":220},[210,2152,2154],{"class":212,"line":2153},31,[210,2155,397],{"emptyLinePlaceholder":396},[210,2157,2159,2161,2163,2165,2168,2170],{"class":212,"line":2158},32,[210,2160,755],{"class":234},[210,2162,379],{"class":220},[210,2164,382],{"class":216},[210,2166,2167],{"class":360},"✓ Player indexes created",[210,2169,382],{"class":216},[210,2171,370],{"class":220},[210,2173,2175],{"class":212,"line":2174},33,[210,2176,1004],{"class":744},[210,2178,2180],{"class":212,"line":2179},34,[210,2181,397],{"emptyLinePlaceholder":396},[210,2183,2185],{"class":212,"line":2184},35,[210,2186,2187],{"class":303},"-- Call on server start\n",[210,2189,2191,2194],{"class":212,"line":2190},36,[210,2192,2193],{"class":234},"SetupPlayerIndexes",[210,2195,735],{"class":220},[198,2197,2199],{"id":2198},"setup-for-logs","Setup for Logs",[174,2201,2203],{"className":204,"code":2202,"language":206,"meta":183,"style":183},"function SetupLogIndexes()\n    local logs = db:Collection(\"logs\")\n\n    -- Query by category\n    logs:CreateIndex(\n        { category = 1, timestamp = -1 },\n        false,\n        \"category_time\"\n    )\n\n    -- Query by player\n    logs:CreateIndex(\n        { steamid = 1, timestamp = -1 },\n        false,\n        \"player_time\"\n    )\n\n    print(\"✓ Log indexes created\")\nend\n",[181,2204,2205,2214,2240,2244,2249,2260,2280,2286,2295,2299,2303,2308,2318,2336,2342,2351,2355,2359,2374],{"__ignoreMap":183},[210,2206,2207,2209,2212],{"class":212,"line":213},[210,2208,1902],{"class":744},[210,2210,2211],{"class":234}," SetupLogIndexes",[210,2213,735],{"class":216},[210,2215,2216,2218,2221,2223,2225,2227,2229,2231,2233,2236,2238],{"class":212,"line":307},[210,2217,1912],{"class":216},[210,2219,2220],{"class":220}," logs ",[210,2222,224],{"class":216},[210,2224,1920],{"class":227},[210,2226,231],{"class":220},[210,2228,1925],{"class":234},[210,2230,379],{"class":220},[210,2232,382],{"class":216},[210,2234,2235],{"class":360},"logs",[210,2237,382],{"class":216},[210,2239,370],{"class":220},[210,2241,2242],{"class":212,"line":327},[210,2243,397],{"emptyLinePlaceholder":396},[210,2245,2246],{"class":212,"line":342},[210,2247,2248],{"class":303},"    -- Query by category\n",[210,2250,2251,2254,2256,2258],{"class":212,"line":354},[210,2252,2253],{"class":227},"    logs",[210,2255,231],{"class":220},[210,2257,235],{"class":234},[210,2259,324],{"class":220},[210,2261,2262,2265,2267,2269,2272,2274,2276,2278],{"class":212,"line":367},[210,2263,2264],{"class":220},"        { category ",[210,2266,224],{"class":216},[210,2268,336],{"class":335},[210,2270,2271],{"class":220},", timestamp ",[210,2273,224],{"class":216},[210,2275,426],{"class":216},[210,2277,429],{"class":335},[210,2279,339],{"class":220},[210,2281,2282,2284],{"class":212,"line":373},[210,2283,2024],{"class":216},[210,2285,440],{"class":220},[210,2287,2288,2290,2293],{"class":212,"line":393},[210,2289,1978],{"class":216},[210,2291,2292],{"class":360},"category_time",[210,2294,364],{"class":216},[210,2296,2297],{"class":212,"line":400},[210,2298,1987],{"class":220},[210,2300,2301],{"class":212,"line":406},[210,2302,397],{"emptyLinePlaceholder":396},[210,2304,2305],{"class":212,"line":418},[210,2306,2307],{"class":303},"    -- Query by player\n",[210,2309,2310,2312,2314,2316],{"class":212,"line":434},[210,2311,2253],{"class":227},[210,2313,231],{"class":220},[210,2315,235],{"class":234},[210,2317,324],{"class":220},[210,2319,2320,2322,2324,2326,2328,2330,2332,2334],{"class":212,"line":443},[210,2321,1960],{"class":220},[210,2323,224],{"class":216},[210,2325,336],{"class":335},[210,2327,2271],{"class":220},[210,2329,224],{"class":216},[210,2331,426],{"class":216},[210,2333,429],{"class":335},[210,2335,339],{"class":220},[210,2337,2338,2340],{"class":212,"line":453},[210,2339,2024],{"class":216},[210,2341,440],{"class":220},[210,2343,2344,2346,2349],{"class":212,"line":946},[210,2345,1978],{"class":216},[210,2347,2348],{"class":360},"player_time",[210,2350,364],{"class":216},[210,2352,2353],{"class":212,"line":952},[210,2354,1987],{"class":220},[210,2356,2357],{"class":212,"line":957},[210,2358,397],{"emptyLinePlaceholder":396},[210,2360,2361,2363,2365,2367,2370,2372],{"class":212,"line":963},[210,2362,755],{"class":234},[210,2364,379],{"class":220},[210,2366,382],{"class":216},[210,2368,2369],{"class":360},"✓ Log indexes created",[210,2371,382],{"class":216},[210,2373,370],{"class":220},[210,2375,2376],{"class":212,"line":974},[210,2377,1004],{"class":744},[198,2379,2381],{"id":2380},"index-management-utility","Index Management Utility",[174,2383,2385],{"className":204,"code":2384,"language":206,"meta":183,"style":183},"local IndexManager = {}\n\nfunction IndexManager.EnsureIndexes(collection, indexes)\n    local existing = collection:ListIndexes() or {}\n    local existingNames = {}\n\n    for _, idx in ipairs(existing) do\n        existingNames[idx.name] = true\n    end\n\n    for _, index in ipairs(indexes) do\n        if not existingNames[index.name] then\n            local created = collection:CreateIndex(\n                index.keys,\n                index.unique or false,\n                index.name\n            )\n            if created then\n                print(\"Created index:\", index.name)\n            end\n        end\n    end\nend\n\n-- Usage\nIndexManager.EnsureIndexes(players, {\n    { name = \"steamid_unique\", keys = { steamid = 1 }, unique = true },\n    { name = \"score_desc\", keys = { score = -1 } },\n    { name = \"class_level\", keys = { class = 1, level = 1 } }\n})\n",[181,2386,2387,2398,2402,2428,2451,2462,2466,2482,2496,2500,2504,2519,2535,2552,2561,2574,2581,2586,2595,2615,2619,2623,2627,2631,2635,2640,2650,2685,2712,2743],{"__ignoreMap":183},[210,2388,2389,2391,2394,2396],{"class":212,"line":213},[210,2390,217],{"class":216},[210,2392,2393],{"class":220}," IndexManager ",[210,2395,224],{"class":216},[210,2397,859],{"class":220},[210,2399,2400],{"class":212,"line":307},[210,2401,397],{"emptyLinePlaceholder":396},[210,2403,2404,2406,2409,2412,2415,2417,2420,2423,2426],{"class":212,"line":327},[210,2405,1902],{"class":744},[210,2407,2408],{"class":234}," IndexManager",[210,2410,2411],{"class":220},".",[210,2413,2414],{"class":234},"EnsureIndexes",[210,2416,379],{"class":216},[210,2418,1114],{"class":2419},"sHdIc",[210,2421,2422],{"class":216},",",[210,2424,2425],{"class":2419}," indexes",[210,2427,370],{"class":216},[210,2429,2430,2432,2435,2437,2439,2441,2443,2446,2449],{"class":212,"line":342},[210,2431,1912],{"class":216},[210,2433,2434],{"class":220}," existing ",[210,2436,224],{"class":216},[210,2438,228],{"class":227},[210,2440,231],{"class":220},[210,2442,732],{"class":234},[210,2444,2445],{"class":220},"() ",[210,2447,2448],{"class":216},"or",[210,2450,859],{"class":220},[210,2452,2453,2455,2458,2460],{"class":212,"line":354},[210,2454,1912],{"class":216},[210,2456,2457],{"class":220}," existingNames ",[210,2459,224],{"class":216},[210,2461,859],{"class":220},[210,2463,2464],{"class":212,"line":367},[210,2465,397],{"emptyLinePlaceholder":396},[210,2467,2468,2470,2473,2475,2477,2480],{"class":212,"line":373},[210,2469,771],{"class":744},[210,2471,2472],{"class":220}," _, idx ",[210,2474,777],{"class":744},[210,2476,780],{"class":234},[210,2478,2479],{"class":220},"(existing) ",[210,2481,786],{"class":744},[210,2483,2484,2487,2489,2491,2493],{"class":212,"line":393},[210,2485,2486],{"class":220},"        existingNames[idx.",[210,2488,263],{"class":227},[210,2490,569],{"class":220},[210,2492,224],{"class":216},[210,2494,2495],{"class":216}," true\n",[210,2497,2498],{"class":212,"line":400},[210,2499,998],{"class":744},[210,2501,2502],{"class":212,"line":406},[210,2503,397],{"emptyLinePlaceholder":396},[210,2505,2506,2508,2511,2513,2515,2517],{"class":212,"line":418},[210,2507,771],{"class":744},[210,2509,2510],{"class":220}," _, index ",[210,2512,777],{"class":744},[210,2514,780],{"class":234},[210,2516,783],{"class":220},[210,2518,786],{"class":744},[210,2520,2521,2523,2526,2529,2531,2533],{"class":212,"line":434},[210,2522,837],{"class":744},[210,2524,2525],{"class":216}," not",[210,2527,2528],{"class":220}," existingNames[index.",[210,2530,263],{"class":227},[210,2532,569],{"class":220},[210,2534,750],{"class":744},[210,2536,2537,2539,2542,2544,2546,2548,2550],{"class":212,"line":443},[210,2538,851],{"class":216},[210,2540,2541],{"class":220}," created ",[210,2543,224],{"class":216},[210,2545,228],{"class":227},[210,2547,231],{"class":220},[210,2549,235],{"class":234},[210,2551,324],{"class":220},[210,2553,2554,2557,2559],{"class":212,"line":453},[210,2555,2556],{"class":220},"                index.",[210,2558,251],{"class":227},[210,2560,440],{"class":220},[210,2562,2563,2565,2567,2569,2572],{"class":212,"line":946},[210,2564,2556],{"class":220},[210,2566,257],{"class":227},[210,2568,813],{"class":216},[210,2570,2571],{"class":216}," false",[210,2573,440],{"class":220},[210,2575,2576,2578],{"class":212,"line":952},[210,2577,2556],{"class":220},[210,2579,2580],{"class":227},"name\n",[210,2582,2583],{"class":212,"line":957},[210,2584,2585],{"class":220},"            )\n",[210,2587,2588,2591,2593],{"class":212,"line":963},[210,2589,2590],{"class":744},"            if",[210,2592,2541],{"class":220},[210,2594,750],{"class":744},[210,2596,2597,2600,2602,2604,2606,2608,2611,2613],{"class":212,"line":974},[210,2598,2599],{"class":234},"                print",[210,2601,379],{"class":220},[210,2603,382],{"class":216},[210,2605,385],{"class":360},[210,2607,382],{"class":216},[210,2609,2610],{"class":220},", index.",[210,2612,263],{"class":227},[210,2614,370],{"class":220},[210,2616,2617],{"class":212,"line":990},[210,2618,912],{"class":744},[210,2620,2621],{"class":212,"line":995},[210,2622,949],{"class":744},[210,2624,2625],{"class":212,"line":1001},[210,2626,998],{"class":744},[210,2628,2629],{"class":212,"line":2087},[210,2630,1004],{"class":744},[210,2632,2633],{"class":212,"line":2092},[210,2634,397],{"emptyLinePlaceholder":396},[210,2636,2637],{"class":212,"line":2097},[210,2638,2639],{"class":303},"-- Usage\n",[210,2641,2642,2645,2647],{"class":212,"line":2103},[210,2643,2644],{"class":220},"IndexManager.",[210,2646,2414],{"class":234},[210,2648,2649],{"class":220},"(players, {\n",[210,2651,2652,2655,2657,2659,2661,2663,2666,2668,2671,2673,2675,2678,2680,2683],{"class":212,"line":2114},[210,2653,2654],{"class":220},"    { name ",[210,2656,224],{"class":216},[210,2658,547],{"class":216},[210,2660,361],{"class":360},[210,2662,382],{"class":216},[210,2664,2665],{"class":220},", keys ",[210,2667,224],{"class":216},[210,2669,2670],{"class":220}," { steamid ",[210,2672,224],{"class":216},[210,2674,336],{"class":335},[210,2676,2677],{"class":220}," }, unique ",[210,2679,224],{"class":216},[210,2681,2682],{"class":216}," true",[210,2684,339],{"class":220},[210,2686,2687,2689,2691,2693,2695,2697,2699,2701,2703,2705,2707,2709],{"class":212,"line":2132},[210,2688,2654],{"class":220},[210,2690,224],{"class":216},[210,2692,547],{"class":216},[210,2694,1250],{"class":360},[210,2696,382],{"class":216},[210,2698,2665],{"class":220},[210,2700,224],{"class":216},[210,2702,1725],{"class":220},[210,2704,224],{"class":216},[210,2706,426],{"class":216},[210,2708,429],{"class":335},[210,2710,2711],{"class":220}," } },\n",[210,2713,2714,2716,2718,2720,2722,2724,2726,2728,2731,2733,2735,2737,2739,2741],{"class":212,"line":2139},[210,2715,2654],{"class":220},[210,2717,224],{"class":216},[210,2719,547],{"class":216},[210,2721,515],{"class":360},[210,2723,382],{"class":216},[210,2725,2665],{"class":220},[210,2727,224],{"class":216},[210,2729,2730],{"class":220}," { class ",[210,2732,224],{"class":216},[210,2734,336],{"class":335},[210,2736,494],{"class":220},[210,2738,224],{"class":216},[210,2740,336],{"class":335},[210,2742,1810],{"class":220},[210,2744,2745],{"class":212,"line":2148},[210,2746,704],{"class":220},[166,2748,2750],{"id":2749},"monitoring-index-usage","Monitoring Index Usage",[162,2752,2753],{},"Check if your queries use indexes:",[174,2755,2757],{"className":204,"code":2756,"language":206,"meta":183,"style":183},"-- List indexes to verify they exist\nlocal indexes = collection:ListIndexes()\nprint(\"Current indexes:\")\nfor _, index in ipairs(indexes) do\n    print(\"  -\", index.name)\nend\n\n-- Get collection stats\nlocal stats = db:Stats(\"players\")\nif stats then\n    print(\"Index size:\", stats.totalIndexSize, \"bytes\")\nend\n",[181,2758,2759,2764,2780,2795,2810,2829,2833,2837,2842,2868,2876,2906],{"__ignoreMap":183},[210,2760,2761],{"class":212,"line":213},[210,2762,2763],{"class":303},"-- List indexes to verify they exist\n",[210,2765,2766,2768,2770,2772,2774,2776,2778],{"class":212,"line":307},[210,2767,217],{"class":216},[210,2769,723],{"class":220},[210,2771,224],{"class":216},[210,2773,228],{"class":227},[210,2775,231],{"class":220},[210,2777,732],{"class":234},[210,2779,735],{"class":220},[210,2781,2782,2784,2786,2788,2791,2793],{"class":212,"line":327},[210,2783,376],{"class":234},[210,2785,379],{"class":220},[210,2787,382],{"class":216},[210,2789,2790],{"class":360},"Current indexes:",[210,2792,382],{"class":216},[210,2794,370],{"class":220},[210,2796,2797,2800,2802,2804,2806,2808],{"class":212,"line":342},[210,2798,2799],{"class":744},"for",[210,2801,2510],{"class":220},[210,2803,777],{"class":744},[210,2805,780],{"class":234},[210,2807,783],{"class":220},[210,2809,786],{"class":744},[210,2811,2812,2814,2816,2818,2821,2823,2825,2827],{"class":212,"line":354},[210,2813,755],{"class":234},[210,2815,379],{"class":220},[210,2817,382],{"class":216},[210,2819,2820],{"class":360},"  -",[210,2822,382],{"class":216},[210,2824,2610],{"class":220},[210,2826,263],{"class":227},[210,2828,370],{"class":220},[210,2830,2831],{"class":212,"line":367},[210,2832,1004],{"class":744},[210,2834,2835],{"class":212,"line":373},[210,2836,397],{"emptyLinePlaceholder":396},[210,2838,2839],{"class":212,"line":393},[210,2840,2841],{"class":303},"-- Get collection stats\n",[210,2843,2844,2846,2849,2851,2853,2855,2858,2860,2862,2864,2866],{"class":212,"line":400},[210,2845,217],{"class":216},[210,2847,2848],{"class":220}," stats ",[210,2850,224],{"class":216},[210,2852,1920],{"class":227},[210,2854,231],{"class":220},[210,2856,2857],{"class":234},"Stats",[210,2859,379],{"class":220},[210,2861,382],{"class":216},[210,2863,409],{"class":360},[210,2865,382],{"class":216},[210,2867,370],{"class":220},[210,2869,2870,2872,2874],{"class":212,"line":406},[210,2871,745],{"class":744},[210,2873,2848],{"class":220},[210,2875,750],{"class":744},[210,2877,2878,2880,2882,2884,2887,2889,2892,2895,2897,2899,2902,2904],{"class":212,"line":418},[210,2879,755],{"class":234},[210,2881,379],{"class":220},[210,2883,382],{"class":216},[210,2885,2886],{"class":360},"Index size:",[210,2888,382],{"class":216},[210,2890,2891],{"class":220},", stats.",[210,2893,2894],{"class":227},"totalIndexSize",[210,2896,939],{"class":220},[210,2898,382],{"class":216},[210,2900,2901],{"class":360},"bytes",[210,2903,382],{"class":216},[210,2905,370],{"class":220},[210,2907,2908],{"class":212,"line":434},[210,2909,1004],{"class":744},[166,2911,2913],{"id":2912},"next-steps","Next Steps",[244,2915,2916,2922],{},[247,2917,2918,2921],{},[2919,2920,103],"a",{"href":104}," - See indexes in real applications",[247,2923,2924,2926],{},[2919,2925,130],{"href":131}," - Complete method documentation",[2928,2929,2930],"style",{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}",{"title":183,"searchDepth":213,"depth":307,"links":2932},[2933,2934,2939,2944,2945,2949,2955,2962,2967,2968],{"id":168,"depth":307,"text":169},{"id":195,"depth":307,"text":196,"children":2935},[2936,2937,2938],{"id":200,"depth":327,"text":201},{"id":241,"depth":327,"text":242},{"id":267,"depth":327,"text":268},{"id":285,"depth":307,"text":286,"children":2940},[2941,2942,2943],{"id":289,"depth":327,"text":290},{"id":458,"depth":327,"text":459},{"id":580,"depth":327,"text":581},{"id":707,"depth":307,"text":708},{"id":1007,"depth":307,"text":1008,"children":2946},[2947,2948],{"id":1011,"depth":327,"text":1012},{"id":1098,"depth":327,"text":1099},{"id":1143,"depth":307,"text":1144,"children":2950},[2951,2952,2953,2954],{"id":1147,"depth":327,"text":1148},{"id":1203,"depth":327,"text":1204},{"id":1317,"depth":327,"text":1318},{"id":1483,"depth":327,"text":1484},{"id":1553,"depth":307,"text":1554,"children":2956},[2957,2958,2959,2960,2961],{"id":1557,"depth":327,"text":1558},{"id":1655,"depth":327,"text":1656},{"id":1736,"depth":327,"text":1737},{"id":1813,"depth":327,"text":1814},{"id":1834,"depth":327,"text":1835},{"id":1887,"depth":307,"text":1888,"children":2963},[2964,2965,2966],{"id":1891,"depth":327,"text":1892},{"id":2198,"depth":327,"text":2199},{"id":2380,"depth":327,"text":2381},{"id":2749,"depth":307,"text":2750},{"id":2912,"depth":307,"text":2913},"Create and manage indexes for optimal query performance","md",null,{},{"icon":63},{"title":97,"description":2969},"iSLC36oAxwmUaPewYotJHMBDBjSm4dQfXwBg5Zk9dmw",[2977,2979],{"title":92,"path":93,"stem":94,"description":2978,"icon":95,"children":-1},"Analyze and transform data with MongoDB aggregation",{"title":103,"path":104,"stem":105,"description":2980,"icon":108,"children":-1},"Real-world examples and use cases for gmsv_mongo",1774271025716]