[{"data":1,"prerenderedAt":943},["ShallowReactive",2],{"navigation":3,"\u002Fexamples":151,"\u002Fexamples-surround":938},[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":103,"body":153,"description":931,"extension":932,"links":933,"meta":934,"navigation":935,"path":104,"seo":936,"stem":105,"__hash__":937},"docs\u002F5.examples\u002F1.index.md",{"type":154,"value":155,"toc":923},"minimark",[156,160,164,169,193,197,202,479,483,681,685,919],[157,158,103],"h1",{"id":159},"examples",[161,162,163],"p",{},"This section contains practical examples demonstrating gmsv_mongo in real-world scenarios.",[165,166,168],"h2",{"id":167},"categories","Categories",[170,171,172,178,183,188],"card-group",{},[173,174,175],"card",{"icon":113,"title":110,"to":111},[161,176,177],{},"Connection and simple CRUD operations",[173,179,180],{"icon":118,"title":115,"to":116},[161,181,182],{},"Player data, inventories, and progression",[173,184,185],{"icon":123,"title":120,"to":121},[161,186,187],{},"Leaderboards, achievements, and matchmaking",[173,189,190],{"icon":128,"title":125,"to":126},[161,191,192],{},"Bans, logs, and monitoring",[165,194,196],{"id":195},"quick-examples","Quick Examples",[198,199,201],"h3",{"id":200},"save-player-data","Save Player Data",[203,204,209],"pre",{"className":205,"code":206,"language":207,"meta":208,"style":208},"language-lua shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","function SavePlayer(ply)\n    local players = db:Collection(\"players\")\n\n    players:UpdateOneAsync(\n        { steamid = ply:SteamID() },\n        {\n            [\"$set\"] = {\n                username = ply:Nick(),\n                credits = ply.credits,\n                level = ply.level,\n                last_seen = os.time()\n            }\n        },\n        function(err) \n            if err then print(\"Save error:\", err) end\n        end\n    )\nend\n","lua","",[210,211,212,236,272,279,293,312,318,339,357,374,389,403,409,415,432,462,468,474],"code",{"__ignoreMap":208},[213,214,217,221,225,229,233],"span",{"class":215,"line":216},"line",1,[213,218,220],{"class":219},"s7zQu","function",[213,222,224],{"class":223},"s2Zo4"," SavePlayer",[213,226,228],{"class":227},"sMK4o","(",[213,230,232],{"class":231},"sHdIc","ply",[213,234,235],{"class":227},")\n",[213,237,239,242,246,249,253,256,259,261,264,268,270],{"class":215,"line":238},2,[213,240,241],{"class":227},"    local",[213,243,245],{"class":244},"sTEyZ"," players ",[213,247,248],{"class":227},"=",[213,250,252],{"class":251},"sBMFI"," db",[213,254,255],{"class":244},":",[213,257,258],{"class":223},"Collection",[213,260,228],{"class":244},[213,262,263],{"class":227},"\"",[213,265,267],{"class":266},"sfazB","players",[213,269,263],{"class":227},[213,271,235],{"class":244},[213,273,275],{"class":215,"line":274},3,[213,276,278],{"emptyLinePlaceholder":277},true,"\n",[213,280,282,285,287,290],{"class":215,"line":281},4,[213,283,284],{"class":251},"    players",[213,286,255],{"class":244},[213,288,289],{"class":223},"UpdateOneAsync",[213,291,292],{"class":244},"(\n",[213,294,296,299,301,304,306,309],{"class":215,"line":295},5,[213,297,298],{"class":244},"        { steamid ",[213,300,248],{"class":227},[213,302,303],{"class":251}," ply",[213,305,255],{"class":244},[213,307,308],{"class":223},"SteamID",[213,310,311],{"class":244},"() },\n",[213,313,315],{"class":215,"line":314},6,[213,316,317],{"class":244},"        {\n",[213,319,321,324,326,329,331,334,336],{"class":215,"line":320},7,[213,322,323],{"class":244},"            [",[213,325,263],{"class":227},[213,327,328],{"class":266},"$set",[213,330,263],{"class":227},[213,332,333],{"class":244},"] ",[213,335,248],{"class":227},[213,337,338],{"class":244}," {\n",[213,340,342,345,347,349,351,354],{"class":215,"line":341},8,[213,343,344],{"class":244},"                username ",[213,346,248],{"class":227},[213,348,303],{"class":251},[213,350,255],{"class":244},[213,352,353],{"class":223},"Nick",[213,355,356],{"class":244},"(),\n",[213,358,360,363,365,368,371],{"class":215,"line":359},9,[213,361,362],{"class":244},"                credits ",[213,364,248],{"class":227},[213,366,367],{"class":244}," ply.",[213,369,370],{"class":251},"credits",[213,372,373],{"class":244},",\n",[213,375,377,380,382,384,387],{"class":215,"line":376},10,[213,378,379],{"class":244},"                level ",[213,381,248],{"class":227},[213,383,367],{"class":244},[213,385,386],{"class":251},"level",[213,388,373],{"class":244},[213,390,392,395,397,400],{"class":215,"line":391},11,[213,393,394],{"class":244},"                last_seen ",[213,396,248],{"class":227},[213,398,399],{"class":223}," os.time",[213,401,402],{"class":244},"()\n",[213,404,406],{"class":215,"line":405},12,[213,407,408],{"class":244},"            }\n",[213,410,412],{"class":215,"line":411},13,[213,413,414],{"class":244},"        },\n",[213,416,418,421,423,426,429],{"class":215,"line":417},14,[213,419,420],{"class":219},"        function",[213,422,228],{"class":227},[213,424,425],{"class":231},"err",[213,427,428],{"class":227},")",[213,430,431],{"class":244}," \n",[213,433,435,438,441,444,447,449,451,454,456,459],{"class":215,"line":434},15,[213,436,437],{"class":219},"            if",[213,439,440],{"class":244}," err ",[213,442,443],{"class":219},"then",[213,445,446],{"class":223}," print",[213,448,228],{"class":244},[213,450,263],{"class":227},[213,452,453],{"class":266},"Save error:",[213,455,263],{"class":227},[213,457,458],{"class":244},", err) ",[213,460,461],{"class":219},"end\n",[213,463,465],{"class":215,"line":464},16,[213,466,467],{"class":219},"        end\n",[213,469,471],{"class":215,"line":470},17,[213,472,473],{"class":244},"    )\n",[213,475,477],{"class":215,"line":476},18,[213,478,461],{"class":219},[198,480,482],{"id":481},"load-player-data","Load Player Data",[203,484,486],{"className":205,"code":485,"language":207,"meta":208,"style":208},"function LoadPlayer(ply, callback)\n    local players = db:Collection(\"players\")\n\n    players:FindOneAsync(\n        { steamid = ply:SteamID() },\n        function(err, data)\n            if data then\n                ply.credits = data.credits\n                ply.level = data.level\n            else\n                -- New player defaults\n                ply.credits = 1000\n                ply.level = 1\n            end\n            if callback then callback() end\n        end\n    )\nend\n",[210,487,488,507,531,535,546,560,575,585,601,614,619,625,637,648,653,669,673,677],{"__ignoreMap":208},[213,489,490,492,495,497,499,502,505],{"class":215,"line":216},[213,491,220],{"class":219},[213,493,494],{"class":223}," LoadPlayer",[213,496,228],{"class":227},[213,498,232],{"class":231},[213,500,501],{"class":227},",",[213,503,504],{"class":231}," callback",[213,506,235],{"class":227},[213,508,509,511,513,515,517,519,521,523,525,527,529],{"class":215,"line":238},[213,510,241],{"class":227},[213,512,245],{"class":244},[213,514,248],{"class":227},[213,516,252],{"class":251},[213,518,255],{"class":244},[213,520,258],{"class":223},[213,522,228],{"class":244},[213,524,263],{"class":227},[213,526,267],{"class":266},[213,528,263],{"class":227},[213,530,235],{"class":244},[213,532,533],{"class":215,"line":274},[213,534,278],{"emptyLinePlaceholder":277},[213,536,537,539,541,544],{"class":215,"line":281},[213,538,284],{"class":251},[213,540,255],{"class":244},[213,542,543],{"class":223},"FindOneAsync",[213,545,292],{"class":244},[213,547,548,550,552,554,556,558],{"class":215,"line":295},[213,549,298],{"class":244},[213,551,248],{"class":227},[213,553,303],{"class":251},[213,555,255],{"class":244},[213,557,308],{"class":223},[213,559,311],{"class":244},[213,561,562,564,566,568,570,573],{"class":215,"line":314},[213,563,420],{"class":219},[213,565,228],{"class":227},[213,567,425],{"class":231},[213,569,501],{"class":227},[213,571,572],{"class":231}," data",[213,574,235],{"class":227},[213,576,577,579,582],{"class":215,"line":320},[213,578,437],{"class":219},[213,580,581],{"class":244}," data ",[213,583,584],{"class":219},"then\n",[213,586,587,590,592,595,598],{"class":215,"line":341},[213,588,589],{"class":244},"                ply.",[213,591,370],{"class":251},[213,593,594],{"class":227}," =",[213,596,597],{"class":244}," data.",[213,599,600],{"class":251},"credits\n",[213,602,603,605,607,609,611],{"class":215,"line":359},[213,604,589],{"class":244},[213,606,386],{"class":251},[213,608,594],{"class":227},[213,610,597],{"class":244},[213,612,613],{"class":251},"level\n",[213,615,616],{"class":215,"line":376},[213,617,618],{"class":219},"            else\n",[213,620,621],{"class":215,"line":391},[213,622,624],{"class":623},"sHwdD","                -- New player defaults\n",[213,626,627,629,631,633],{"class":215,"line":405},[213,628,589],{"class":244},[213,630,370],{"class":251},[213,632,594],{"class":227},[213,634,636],{"class":635},"sbssI"," 1000\n",[213,638,639,641,643,645],{"class":215,"line":411},[213,640,589],{"class":244},[213,642,386],{"class":251},[213,644,594],{"class":227},[213,646,647],{"class":635}," 1\n",[213,649,650],{"class":215,"line":417},[213,651,652],{"class":219},"            end\n",[213,654,655,657,660,662,664,667],{"class":215,"line":434},[213,656,437],{"class":219},[213,658,659],{"class":244}," callback ",[213,661,443],{"class":219},[213,663,504],{"class":223},[213,665,666],{"class":244},"() ",[213,668,461],{"class":219},[213,670,671],{"class":215,"line":464},[213,672,467],{"class":219},[213,674,675],{"class":215,"line":470},[213,676,473],{"class":244},[213,678,679],{"class":215,"line":476},[213,680,461],{"class":219},[198,682,684],{"id":683},"get-leaderboard","Get Leaderboard",[203,686,688],{"className":205,"code":687,"language":207,"meta":208,"style":208},"function GetLeaderboard(callback)\n    local players = db:Collection(\"players\")\n\n    players:AggregateAsync({\n        { [\"$match\"] = { banned = { [\"$ne\"] = true } } },\n        { [\"$sort\"] = { score = -1 } },\n        { [\"$limit\"] = 10 },\n        { [\"$project\"] = { username = 1, score = 1, _id = 0 } }\n    }, function(err, results)\n        callback(results or {})\n    end)\nend\n",[210,689,690,704,728,732,744,785,814,835,876,894,908,915],{"__ignoreMap":208},[213,691,692,694,697,699,702],{"class":215,"line":216},[213,693,220],{"class":219},[213,695,696],{"class":223}," GetLeaderboard",[213,698,228],{"class":227},[213,700,701],{"class":231},"callback",[213,703,235],{"class":227},[213,705,706,708,710,712,714,716,718,720,722,724,726],{"class":215,"line":238},[213,707,241],{"class":227},[213,709,245],{"class":244},[213,711,248],{"class":227},[213,713,252],{"class":251},[213,715,255],{"class":244},[213,717,258],{"class":223},[213,719,228],{"class":244},[213,721,263],{"class":227},[213,723,267],{"class":266},[213,725,263],{"class":227},[213,727,235],{"class":244},[213,729,730],{"class":215,"line":274},[213,731,278],{"emptyLinePlaceholder":277},[213,733,734,736,738,741],{"class":215,"line":281},[213,735,284],{"class":251},[213,737,255],{"class":244},[213,739,740],{"class":223},"AggregateAsync",[213,742,743],{"class":244},"({\n",[213,745,746,749,751,754,756,758,760,763,765,768,770,773,775,777,779,782],{"class":215,"line":295},[213,747,748],{"class":244},"        { [",[213,750,263],{"class":227},[213,752,753],{"class":266},"$match",[213,755,263],{"class":227},[213,757,333],{"class":244},[213,759,248],{"class":227},[213,761,762],{"class":244}," { banned ",[213,764,248],{"class":227},[213,766,767],{"class":244}," { [",[213,769,263],{"class":227},[213,771,772],{"class":266},"$ne",[213,774,263],{"class":227},[213,776,333],{"class":244},[213,778,248],{"class":227},[213,780,781],{"class":227}," true",[213,783,784],{"class":244}," } } },\n",[213,786,787,789,791,794,796,798,800,803,805,808,811],{"class":215,"line":314},[213,788,748],{"class":244},[213,790,263],{"class":227},[213,792,793],{"class":266},"$sort",[213,795,263],{"class":227},[213,797,333],{"class":244},[213,799,248],{"class":227},[213,801,802],{"class":244}," { score ",[213,804,248],{"class":227},[213,806,807],{"class":227}," -",[213,809,810],{"class":635},"1",[213,812,813],{"class":244}," } },\n",[213,815,816,818,820,823,825,827,829,832],{"class":215,"line":320},[213,817,748],{"class":244},[213,819,263],{"class":227},[213,821,822],{"class":266},"$limit",[213,824,263],{"class":227},[213,826,333],{"class":244},[213,828,248],{"class":227},[213,830,831],{"class":635}," 10",[213,833,834],{"class":244}," },\n",[213,836,837,839,841,844,846,848,850,853,855,858,861,863,865,868,870,873],{"class":215,"line":341},[213,838,748],{"class":244},[213,840,263],{"class":227},[213,842,843],{"class":266},"$project",[213,845,263],{"class":227},[213,847,333],{"class":244},[213,849,248],{"class":227},[213,851,852],{"class":244}," { username ",[213,854,248],{"class":227},[213,856,857],{"class":635}," 1",[213,859,860],{"class":244},", score ",[213,862,248],{"class":227},[213,864,857],{"class":635},[213,866,867],{"class":244},", _id ",[213,869,248],{"class":227},[213,871,872],{"class":635}," 0",[213,874,875],{"class":244}," } }\n",[213,877,878,881,883,885,887,889,892],{"class":215,"line":359},[213,879,880],{"class":244},"    }, ",[213,882,220],{"class":219},[213,884,228],{"class":227},[213,886,425],{"class":231},[213,888,501],{"class":227},[213,890,891],{"class":231}," results",[213,893,235],{"class":227},[213,895,896,899,902,905],{"class":215,"line":376},[213,897,898],{"class":223},"        callback",[213,900,901],{"class":244},"(results ",[213,903,904],{"class":227},"or",[213,906,907],{"class":244}," {})\n",[213,909,910,913],{"class":215,"line":391},[213,911,912],{"class":219},"    end",[213,914,235],{"class":244},[213,916,917],{"class":215,"line":405},[213,918,461],{"class":219},[920,921,922],"style",{},"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 .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}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}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 .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}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}",{"title":208,"searchDepth":216,"depth":238,"links":924},[925,926],{"id":167,"depth":238,"text":168},{"id":195,"depth":238,"text":196,"children":927},[928,929,930],{"id":200,"depth":274,"text":201},{"id":481,"depth":274,"text":482},{"id":683,"depth":274,"text":684},"Real-world examples and use cases for gmsv_mongo","md",null,{},{"icon":108},{"title":103,"description":931},"9WPpppd_qSUA1naXCZpJiYpaApaMTN8VaYjLu_cdSJ0",[939,941],{"title":97,"path":98,"stem":99,"description":940,"icon":63,"children":-1},"Create and manage indexes for optimal query performance",{"title":110,"path":111,"stem":112,"description":942,"icon":113,"children":-1},"Connection and simple CRUD operation examples",1774271022894]