[{"data":1,"prerenderedAt":1839},["ShallowReactive",2],{"navigation":3,"\u002Fgetting-started\u002Ffirst-steps":151,"\u002Fgetting-started\u002Ffirst-steps-surround":1834},[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":22,"body":153,"description":1827,"extension":1828,"links":1829,"meta":1830,"navigation":1831,"path":23,"seo":1832,"stem":24,"__hash__":1833},"docs\u002F1.getting-started\u002F4.first-steps.md",{"type":154,"value":155,"toc":1814},"minimark",[156,160,164,169,249,253,358,362,502,506,631,635,773,777,920,924,1036,1040,1112,1116,1119,1630,1634,1637,1784,1788,1791,1810],[157,158,22],"h1",{"id":159},"first-steps",[161,162,163],"p",{},"This guide walks you through your first MongoDB operations with gmsv_mongo.",[165,166,168],"h2",{"id":167},"loading-the-module","Loading the Module",[170,171,176],"pre",{"className":172,"code":173,"language":174,"meta":175,"style":175},"language-lua shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","-- Load the MongoDB module\nrequire(\"mongo\")\n\n-- Verify it loaded\nprint(\"MongoDB Module Version:\", MongoDB.Version())\n","lua","",[177,178,179,188,212,219,225],"code",{"__ignoreMap":175},[180,181,184],"span",{"class":182,"line":183},"line",1,[180,185,187],{"class":186},"sHwdD","-- Load the MongoDB module\n",[180,189,191,195,199,203,207,209],{"class":182,"line":190},2,[180,192,194],{"class":193},"s2Zo4","require",[180,196,198],{"class":197},"sTEyZ","(",[180,200,202],{"class":201},"sMK4o","\"",[180,204,206],{"class":205},"sfazB","mongo",[180,208,202],{"class":201},[180,210,211],{"class":197},")\n",[180,213,215],{"class":182,"line":214},3,[180,216,218],{"emptyLinePlaceholder":217},true,"\n",[180,220,222],{"class":182,"line":221},4,[180,223,224],{"class":186},"-- Verify it loaded\n",[180,226,228,231,233,235,238,240,243,246],{"class":182,"line":227},5,[180,229,230],{"class":193},"print",[180,232,198],{"class":197},[180,234,202],{"class":201},[180,236,237],{"class":205},"MongoDB Module Version:",[180,239,202],{"class":201},[180,241,242],{"class":197},", MongoDB.",[180,244,245],{"class":193},"Version",[180,247,248],{"class":197},"())\n",[165,250,252],{"id":251},"creating-a-connection","Creating a Connection",[170,254,256],{"className":172,"code":255,"language":174,"meta":175,"style":175},"-- Connect to MongoDB\nlocal client = MongoDB.Client(\"mongodb:\u002F\u002Flocalhost:27017\")\n\nif not client then\n    print(\"Failed to connect to MongoDB!\")\n    return\nend\n\nprint(\"✓ Connected to MongoDB!\")\n",[177,257,258,263,291,295,309,325,331,337,342],{"__ignoreMap":175},[180,259,260],{"class":182,"line":183},[180,261,262],{"class":186},"-- Connect to MongoDB\n",[180,264,265,268,271,274,277,280,282,284,287,289],{"class":182,"line":190},[180,266,267],{"class":201},"local",[180,269,270],{"class":197}," client ",[180,272,273],{"class":201},"=",[180,275,276],{"class":197}," MongoDB.",[180,278,279],{"class":193},"Client",[180,281,198],{"class":197},[180,283,202],{"class":201},[180,285,286],{"class":205},"mongodb:\u002F\u002Flocalhost:27017",[180,288,202],{"class":201},[180,290,211],{"class":197},[180,292,293],{"class":182,"line":214},[180,294,218],{"emptyLinePlaceholder":217},[180,296,297,301,304,306],{"class":182,"line":221},[180,298,300],{"class":299},"s7zQu","if",[180,302,303],{"class":201}," not",[180,305,270],{"class":197},[180,307,308],{"class":299},"then\n",[180,310,311,314,316,318,321,323],{"class":182,"line":227},[180,312,313],{"class":193},"    print",[180,315,198],{"class":197},[180,317,202],{"class":201},[180,319,320],{"class":205},"Failed to connect to MongoDB!",[180,322,202],{"class":201},[180,324,211],{"class":197},[180,326,328],{"class":182,"line":327},6,[180,329,330],{"class":299},"    return\n",[180,332,334],{"class":182,"line":333},7,[180,335,336],{"class":299},"end\n",[180,338,340],{"class":182,"line":339},8,[180,341,218],{"emptyLinePlaceholder":217},[180,343,345,347,349,351,354,356],{"class":182,"line":344},9,[180,346,230],{"class":193},[180,348,198],{"class":197},[180,350,202],{"class":201},[180,352,353],{"class":205},"✓ Connected to MongoDB!",[180,355,202],{"class":201},[180,357,211],{"class":197},[165,359,361],{"id":360},"working-with-databases","Working with Databases",[170,363,365],{"className":172,"code":364,"language":174,"meta":175,"style":175},"-- Get a database reference\nlocal db = client:Database(\"gameserver\")\n\n-- List all databases on the server\nlocal databases = client:ListDatabases()\nprint(\"Available databases:\")\nfor i, name in ipairs(databases) do\n    print(\"  \" .. i .. \". \" .. name)\nend\n",[177,366,367,372,402,406,411,430,445,465,498],{"__ignoreMap":175},[180,368,369],{"class":182,"line":183},[180,370,371],{"class":186},"-- Get a database reference\n",[180,373,374,376,379,381,385,388,391,393,395,398,400],{"class":182,"line":190},[180,375,267],{"class":201},[180,377,378],{"class":197}," db ",[180,380,273],{"class":201},[180,382,384],{"class":383},"sBMFI"," client",[180,386,387],{"class":197},":",[180,389,390],{"class":193},"Database",[180,392,198],{"class":197},[180,394,202],{"class":201},[180,396,397],{"class":205},"gameserver",[180,399,202],{"class":201},[180,401,211],{"class":197},[180,403,404],{"class":182,"line":214},[180,405,218],{"emptyLinePlaceholder":217},[180,407,408],{"class":182,"line":221},[180,409,410],{"class":186},"-- List all databases on the server\n",[180,412,413,415,418,420,422,424,427],{"class":182,"line":227},[180,414,267],{"class":201},[180,416,417],{"class":197}," databases ",[180,419,273],{"class":201},[180,421,384],{"class":383},[180,423,387],{"class":197},[180,425,426],{"class":193},"ListDatabases",[180,428,429],{"class":197},"()\n",[180,431,432,434,436,438,441,443],{"class":182,"line":327},[180,433,230],{"class":193},[180,435,198],{"class":197},[180,437,202],{"class":201},[180,439,440],{"class":205},"Available databases:",[180,442,202],{"class":201},[180,444,211],{"class":197},[180,446,447,450,453,456,459,462],{"class":182,"line":333},[180,448,449],{"class":299},"for",[180,451,452],{"class":197}," i, name ",[180,454,455],{"class":299},"in",[180,457,458],{"class":193}," ipairs",[180,460,461],{"class":197},"(databases) ",[180,463,464],{"class":299},"do\n",[180,466,467,469,471,473,476,479,482,484,487,490,493,495],{"class":182,"line":339},[180,468,313],{"class":193},[180,470,198],{"class":197},[180,472,202],{"class":201},[180,474,475],{"class":201},"  \" ",[180,477,478],{"class":201},"..",[180,480,481],{"class":197}," i ",[180,483,478],{"class":201},[180,485,486],{"class":201}," \"",[180,488,489],{"class":205},". ",[180,491,492],{"class":201},"\" ",[180,494,478],{"class":201},[180,496,497],{"class":197}," name)\n",[180,499,500],{"class":182,"line":344},[180,501,336],{"class":299},[165,503,505],{"id":504},"working-with-collections","Working with Collections",[170,507,509],{"className":172,"code":508,"language":174,"meta":175,"style":175},"-- Get a collection reference\nlocal players = db:Collection(\"players\")\n\n-- List all collections in the database\nlocal collections = db:ListCollections()\nprint(\"Collections in database:\")\nfor i, name in ipairs(collections) do\n    print(\"  \" .. i .. \". \" .. name)\nend\n",[177,510,511,516,544,548,553,571,586,601,627],{"__ignoreMap":175},[180,512,513],{"class":182,"line":183},[180,514,515],{"class":186},"-- Get a collection reference\n",[180,517,518,520,523,525,528,530,533,535,537,540,542],{"class":182,"line":190},[180,519,267],{"class":201},[180,521,522],{"class":197}," players ",[180,524,273],{"class":201},[180,526,527],{"class":383}," db",[180,529,387],{"class":197},[180,531,532],{"class":193},"Collection",[180,534,198],{"class":197},[180,536,202],{"class":201},[180,538,539],{"class":205},"players",[180,541,202],{"class":201},[180,543,211],{"class":197},[180,545,546],{"class":182,"line":214},[180,547,218],{"emptyLinePlaceholder":217},[180,549,550],{"class":182,"line":221},[180,551,552],{"class":186},"-- List all collections in the database\n",[180,554,555,557,560,562,564,566,569],{"class":182,"line":227},[180,556,267],{"class":201},[180,558,559],{"class":197}," collections ",[180,561,273],{"class":201},[180,563,527],{"class":383},[180,565,387],{"class":197},[180,567,568],{"class":193},"ListCollections",[180,570,429],{"class":197},[180,572,573,575,577,579,582,584],{"class":182,"line":327},[180,574,230],{"class":193},[180,576,198],{"class":197},[180,578,202],{"class":201},[180,580,581],{"class":205},"Collections in database:",[180,583,202],{"class":201},[180,585,211],{"class":197},[180,587,588,590,592,594,596,599],{"class":182,"line":333},[180,589,449],{"class":299},[180,591,452],{"class":197},[180,593,455],{"class":299},[180,595,458],{"class":193},[180,597,598],{"class":197},"(collections) ",[180,600,464],{"class":299},[180,602,603,605,607,609,611,613,615,617,619,621,623,625],{"class":182,"line":339},[180,604,313],{"class":193},[180,606,198],{"class":197},[180,608,202],{"class":201},[180,610,475],{"class":201},[180,612,478],{"class":201},[180,614,481],{"class":197},[180,616,478],{"class":201},[180,618,486],{"class":201},[180,620,489],{"class":205},[180,622,492],{"class":201},[180,624,478],{"class":201},[180,626,497],{"class":197},[180,628,629],{"class":182,"line":344},[180,630,336],{"class":299},[165,632,634],{"id":633},"your-first-insert","Your First Insert",[170,636,638],{"className":172,"code":637,"language":174,"meta":175,"style":175},"-- Insert a single document\nlocal playerId = players:InsertOne({\n    steamid = \"STEAM_0:1:12345678\",\n    username = \"TestPlayer\",\n    level = 1,\n    credits = 1000,\n    joined_at = os.time(),\n    inventory = {}\n})\n\nprint(\"Inserted player with ID:\", playerId)\n",[177,639,640,645,665,682,698,711,723,736,746,751,756],{"__ignoreMap":175},[180,641,642],{"class":182,"line":183},[180,643,644],{"class":186},"-- Insert a single document\n",[180,646,647,649,652,654,657,659,662],{"class":182,"line":190},[180,648,267],{"class":201},[180,650,651],{"class":197}," playerId ",[180,653,273],{"class":201},[180,655,656],{"class":383}," players",[180,658,387],{"class":197},[180,660,661],{"class":193},"InsertOne",[180,663,664],{"class":197},"({\n",[180,666,667,670,672,674,677,679],{"class":182,"line":214},[180,668,669],{"class":197},"    steamid ",[180,671,273],{"class":201},[180,673,486],{"class":201},[180,675,676],{"class":205},"STEAM_0:1:12345678",[180,678,202],{"class":201},[180,680,681],{"class":197},",\n",[180,683,684,687,689,691,694,696],{"class":182,"line":221},[180,685,686],{"class":197},"    username ",[180,688,273],{"class":201},[180,690,486],{"class":201},[180,692,693],{"class":205},"TestPlayer",[180,695,202],{"class":201},[180,697,681],{"class":197},[180,699,700,703,705,709],{"class":182,"line":227},[180,701,702],{"class":197},"    level ",[180,704,273],{"class":201},[180,706,708],{"class":707},"sbssI"," 1",[180,710,681],{"class":197},[180,712,713,716,718,721],{"class":182,"line":327},[180,714,715],{"class":197},"    credits ",[180,717,273],{"class":201},[180,719,720],{"class":707}," 1000",[180,722,681],{"class":197},[180,724,725,728,730,733],{"class":182,"line":333},[180,726,727],{"class":197},"    joined_at ",[180,729,273],{"class":201},[180,731,732],{"class":193}," os.time",[180,734,735],{"class":197},"(),\n",[180,737,738,741,743],{"class":182,"line":339},[180,739,740],{"class":197},"    inventory ",[180,742,273],{"class":201},[180,744,745],{"class":197}," {}\n",[180,747,748],{"class":182,"line":344},[180,749,750],{"class":197},"})\n",[180,752,754],{"class":182,"line":753},10,[180,755,218],{"emptyLinePlaceholder":217},[180,757,759,761,763,765,768,770],{"class":182,"line":758},11,[180,760,230],{"class":193},[180,762,198],{"class":197},[180,764,202],{"class":201},[180,766,767],{"class":205},"Inserted player with ID:",[180,769,202],{"class":201},[180,771,772],{"class":197},", playerId)\n",[165,774,776],{"id":775},"your-first-query","Your First Query",[170,778,780],{"className":172,"code":779,"language":174,"meta":175,"style":175},"-- Find the player we just inserted\nlocal player = players:FindOne({\n    steamid = \"STEAM_0:1:12345678\"\n})\n\nif player then\n    print(\"Found player:\", player.username)\n    print(\"  Level:\", player.level)\n    print(\"  Credits:\", player.credits)\nelse\n    print(\"Player not found\")\nend\n",[177,781,782,787,805,818,822,826,834,855,875,895,900,915],{"__ignoreMap":175},[180,783,784],{"class":182,"line":183},[180,785,786],{"class":186},"-- Find the player we just inserted\n",[180,788,789,791,794,796,798,800,803],{"class":182,"line":190},[180,790,267],{"class":201},[180,792,793],{"class":197}," player ",[180,795,273],{"class":201},[180,797,656],{"class":383},[180,799,387],{"class":197},[180,801,802],{"class":193},"FindOne",[180,804,664],{"class":197},[180,806,807,809,811,813,815],{"class":182,"line":214},[180,808,669],{"class":197},[180,810,273],{"class":201},[180,812,486],{"class":201},[180,814,676],{"class":205},[180,816,817],{"class":201},"\"\n",[180,819,820],{"class":182,"line":221},[180,821,750],{"class":197},[180,823,824],{"class":182,"line":227},[180,825,218],{"emptyLinePlaceholder":217},[180,827,828,830,832],{"class":182,"line":327},[180,829,300],{"class":299},[180,831,793],{"class":197},[180,833,308],{"class":299},[180,835,836,838,840,842,845,847,850,853],{"class":182,"line":333},[180,837,313],{"class":193},[180,839,198],{"class":197},[180,841,202],{"class":201},[180,843,844],{"class":205},"Found player:",[180,846,202],{"class":201},[180,848,849],{"class":197},", player.",[180,851,852],{"class":383},"username",[180,854,211],{"class":197},[180,856,857,859,861,863,866,868,870,873],{"class":182,"line":339},[180,858,313],{"class":193},[180,860,198],{"class":197},[180,862,202],{"class":201},[180,864,865],{"class":205},"  Level:",[180,867,202],{"class":201},[180,869,849],{"class":197},[180,871,872],{"class":383},"level",[180,874,211],{"class":197},[180,876,877,879,881,883,886,888,890,893],{"class":182,"line":344},[180,878,313],{"class":193},[180,880,198],{"class":197},[180,882,202],{"class":201},[180,884,885],{"class":205},"  Credits:",[180,887,202],{"class":201},[180,889,849],{"class":197},[180,891,892],{"class":383},"credits",[180,894,211],{"class":197},[180,896,897],{"class":182,"line":753},[180,898,899],{"class":299},"else\n",[180,901,902,904,906,908,911,913],{"class":182,"line":758},[180,903,313],{"class":193},[180,905,198],{"class":197},[180,907,202],{"class":201},[180,909,910],{"class":205},"Player not found",[180,912,202],{"class":201},[180,914,211],{"class":197},[180,916,918],{"class":182,"line":917},12,[180,919,336],{"class":299},[165,921,923],{"id":922},"your-first-update","Your First Update",[170,925,927],{"className":172,"code":926,"language":174,"meta":175,"style":175},"-- Update the player's level\nlocal modified = players:UpdateOne(\n    { steamid = \"STEAM_0:1:12345678\" },  -- Filter\n    { [\"$set\"] = { level = 2 } }         -- Update\n)\n\nprint(\"Modified\", modified, \"document(s)\")\n",[177,928,929,934,953,972,1003,1007,1011],{"__ignoreMap":175},[180,930,931],{"class":182,"line":183},[180,932,933],{"class":186},"-- Update the player's level\n",[180,935,936,938,941,943,945,947,950],{"class":182,"line":190},[180,937,267],{"class":201},[180,939,940],{"class":197}," modified ",[180,942,273],{"class":201},[180,944,656],{"class":383},[180,946,387],{"class":197},[180,948,949],{"class":193},"UpdateOne",[180,951,952],{"class":197},"(\n",[180,954,955,958,960,962,964,966,969],{"class":182,"line":214},[180,956,957],{"class":197},"    { steamid ",[180,959,273],{"class":201},[180,961,486],{"class":201},[180,963,676],{"class":205},[180,965,492],{"class":201},[180,967,968],{"class":197},"},  ",[180,970,971],{"class":186},"-- Filter\n",[180,973,974,977,979,982,984,987,989,992,994,997,1000],{"class":182,"line":221},[180,975,976],{"class":197},"    { [",[180,978,202],{"class":201},[180,980,981],{"class":205},"$set",[180,983,202],{"class":201},[180,985,986],{"class":197},"] ",[180,988,273],{"class":201},[180,990,991],{"class":197}," { level ",[180,993,273],{"class":201},[180,995,996],{"class":707}," 2",[180,998,999],{"class":197}," } }         ",[180,1001,1002],{"class":186},"-- Update\n",[180,1004,1005],{"class":182,"line":227},[180,1006,211],{"class":197},[180,1008,1009],{"class":182,"line":327},[180,1010,218],{"emptyLinePlaceholder":217},[180,1012,1013,1015,1017,1019,1022,1024,1027,1029,1032,1034],{"class":182,"line":333},[180,1014,230],{"class":193},[180,1016,198],{"class":197},[180,1018,202],{"class":201},[180,1020,1021],{"class":205},"Modified",[180,1023,202],{"class":201},[180,1025,1026],{"class":197},", modified, ",[180,1028,202],{"class":201},[180,1030,1031],{"class":205},"document(s)",[180,1033,202],{"class":201},[180,1035,211],{"class":197},[165,1037,1039],{"id":1038},"your-first-delete","Your First Delete",[170,1041,1043],{"className":172,"code":1042,"language":174,"meta":175,"style":175},"-- Delete the test player\nlocal deleted = players:DeleteOne({\n    steamid = \"STEAM_0:1:12345678\"\n})\n\nprint(\"Deleted\", deleted, \"document(s)\")\n",[177,1044,1045,1050,1068,1080,1084,1088],{"__ignoreMap":175},[180,1046,1047],{"class":182,"line":183},[180,1048,1049],{"class":186},"-- Delete the test player\n",[180,1051,1052,1054,1057,1059,1061,1063,1066],{"class":182,"line":190},[180,1053,267],{"class":201},[180,1055,1056],{"class":197}," deleted ",[180,1058,273],{"class":201},[180,1060,656],{"class":383},[180,1062,387],{"class":197},[180,1064,1065],{"class":193},"DeleteOne",[180,1067,664],{"class":197},[180,1069,1070,1072,1074,1076,1078],{"class":182,"line":214},[180,1071,669],{"class":197},[180,1073,273],{"class":201},[180,1075,486],{"class":201},[180,1077,676],{"class":205},[180,1079,817],{"class":201},[180,1081,1082],{"class":182,"line":221},[180,1083,750],{"class":197},[180,1085,1086],{"class":182,"line":227},[180,1087,218],{"emptyLinePlaceholder":217},[180,1089,1090,1092,1094,1096,1099,1101,1104,1106,1108,1110],{"class":182,"line":327},[180,1091,230],{"class":193},[180,1093,198],{"class":197},[180,1095,202],{"class":201},[180,1097,1098],{"class":205},"Deleted",[180,1100,202],{"class":201},[180,1102,1103],{"class":197},", deleted, ",[180,1105,202],{"class":201},[180,1107,1031],{"class":205},[180,1109,202],{"class":201},[180,1111,211],{"class":197},[165,1113,1115],{"id":1114},"complete-example","Complete Example",[161,1117,1118],{},"Here's a complete example putting it all together:",[170,1120,1122],{"className":172,"code":1121,"language":174,"meta":175,"style":175},"require(\"mongo\")\n\n-- Connect\nlocal client = MongoDB.Client(\"mongodb:\u002F\u002Flocalhost:27017\")\nif not client then\n    print(\"Connection failed!\")\n    return\nend\n\n-- Setup\nlocal db = client:Database(\"gameserver\")\nlocal players = db:Collection(\"players\")\n\n-- Create\nlocal id = players:InsertOne({\n    steamid = \"STEAM_0:1:99999999\",\n    username = \"NewPlayer\",\n    level = 1,\n    credits = 500\n})\nprint(\"Created player:\", id)\n\n-- Read\nlocal player = players:FindOne({ steamid = \"STEAM_0:1:99999999\" })\nprint(\"Player level:\", player.level)\n\n-- Update\nplayers:UpdateOne(\n    { steamid = \"STEAM_0:1:99999999\" },\n    { [\"$inc\"] = { level = 1, credits = 100 } }\n)\n\n-- Verify update\nplayer = players:FindOne({ steamid = \"STEAM_0:1:99999999\" })\nprint(\"New level:\", player.level)      -- 2\nprint(\"New credits:\", player.credits)  -- 600\n\n-- Delete\nplayers:DeleteOne({ steamid = \"STEAM_0:1:99999999\" })\nprint(\"Player deleted\")\n",[177,1123,1124,1138,1142,1147,1169,1179,1194,1198,1202,1206,1211,1235,1259,1264,1270,1288,1304,1320,1331,1341,1346,1363,1368,1374,1402,1422,1427,1432,1443,1459,1492,1497,1502,1508,1534,1558,1582,1587,1593,1614],{"__ignoreMap":175},[180,1125,1126,1128,1130,1132,1134,1136],{"class":182,"line":183},[180,1127,194],{"class":193},[180,1129,198],{"class":197},[180,1131,202],{"class":201},[180,1133,206],{"class":205},[180,1135,202],{"class":201},[180,1137,211],{"class":197},[180,1139,1140],{"class":182,"line":190},[180,1141,218],{"emptyLinePlaceholder":217},[180,1143,1144],{"class":182,"line":214},[180,1145,1146],{"class":186},"-- Connect\n",[180,1148,1149,1151,1153,1155,1157,1159,1161,1163,1165,1167],{"class":182,"line":221},[180,1150,267],{"class":201},[180,1152,270],{"class":197},[180,1154,273],{"class":201},[180,1156,276],{"class":197},[180,1158,279],{"class":193},[180,1160,198],{"class":197},[180,1162,202],{"class":201},[180,1164,286],{"class":205},[180,1166,202],{"class":201},[180,1168,211],{"class":197},[180,1170,1171,1173,1175,1177],{"class":182,"line":227},[180,1172,300],{"class":299},[180,1174,303],{"class":201},[180,1176,270],{"class":197},[180,1178,308],{"class":299},[180,1180,1181,1183,1185,1187,1190,1192],{"class":182,"line":327},[180,1182,313],{"class":193},[180,1184,198],{"class":197},[180,1186,202],{"class":201},[180,1188,1189],{"class":205},"Connection failed!",[180,1191,202],{"class":201},[180,1193,211],{"class":197},[180,1195,1196],{"class":182,"line":333},[180,1197,330],{"class":299},[180,1199,1200],{"class":182,"line":339},[180,1201,336],{"class":299},[180,1203,1204],{"class":182,"line":344},[180,1205,218],{"emptyLinePlaceholder":217},[180,1207,1208],{"class":182,"line":753},[180,1209,1210],{"class":186},"-- Setup\n",[180,1212,1213,1215,1217,1219,1221,1223,1225,1227,1229,1231,1233],{"class":182,"line":758},[180,1214,267],{"class":201},[180,1216,378],{"class":197},[180,1218,273],{"class":201},[180,1220,384],{"class":383},[180,1222,387],{"class":197},[180,1224,390],{"class":193},[180,1226,198],{"class":197},[180,1228,202],{"class":201},[180,1230,397],{"class":205},[180,1232,202],{"class":201},[180,1234,211],{"class":197},[180,1236,1237,1239,1241,1243,1245,1247,1249,1251,1253,1255,1257],{"class":182,"line":917},[180,1238,267],{"class":201},[180,1240,522],{"class":197},[180,1242,273],{"class":201},[180,1244,527],{"class":383},[180,1246,387],{"class":197},[180,1248,532],{"class":193},[180,1250,198],{"class":197},[180,1252,202],{"class":201},[180,1254,539],{"class":205},[180,1256,202],{"class":201},[180,1258,211],{"class":197},[180,1260,1262],{"class":182,"line":1261},13,[180,1263,218],{"emptyLinePlaceholder":217},[180,1265,1267],{"class":182,"line":1266},14,[180,1268,1269],{"class":186},"-- Create\n",[180,1271,1273,1275,1278,1280,1282,1284,1286],{"class":182,"line":1272},15,[180,1274,267],{"class":201},[180,1276,1277],{"class":197}," id ",[180,1279,273],{"class":201},[180,1281,656],{"class":383},[180,1283,387],{"class":197},[180,1285,661],{"class":193},[180,1287,664],{"class":197},[180,1289,1291,1293,1295,1297,1300,1302],{"class":182,"line":1290},16,[180,1292,669],{"class":197},[180,1294,273],{"class":201},[180,1296,486],{"class":201},[180,1298,1299],{"class":205},"STEAM_0:1:99999999",[180,1301,202],{"class":201},[180,1303,681],{"class":197},[180,1305,1307,1309,1311,1313,1316,1318],{"class":182,"line":1306},17,[180,1308,686],{"class":197},[180,1310,273],{"class":201},[180,1312,486],{"class":201},[180,1314,1315],{"class":205},"NewPlayer",[180,1317,202],{"class":201},[180,1319,681],{"class":197},[180,1321,1323,1325,1327,1329],{"class":182,"line":1322},18,[180,1324,702],{"class":197},[180,1326,273],{"class":201},[180,1328,708],{"class":707},[180,1330,681],{"class":197},[180,1332,1334,1336,1338],{"class":182,"line":1333},19,[180,1335,715],{"class":197},[180,1337,273],{"class":201},[180,1339,1340],{"class":707}," 500\n",[180,1342,1344],{"class":182,"line":1343},20,[180,1345,750],{"class":197},[180,1347,1349,1351,1353,1355,1358,1360],{"class":182,"line":1348},21,[180,1350,230],{"class":193},[180,1352,198],{"class":197},[180,1354,202],{"class":201},[180,1356,1357],{"class":205},"Created player:",[180,1359,202],{"class":201},[180,1361,1362],{"class":197},", id)\n",[180,1364,1366],{"class":182,"line":1365},22,[180,1367,218],{"emptyLinePlaceholder":217},[180,1369,1371],{"class":182,"line":1370},23,[180,1372,1373],{"class":186},"-- Read\n",[180,1375,1377,1379,1381,1383,1385,1387,1389,1392,1394,1396,1398,1400],{"class":182,"line":1376},24,[180,1378,267],{"class":201},[180,1380,793],{"class":197},[180,1382,273],{"class":201},[180,1384,656],{"class":383},[180,1386,387],{"class":197},[180,1388,802],{"class":193},[180,1390,1391],{"class":197},"({ steamid ",[180,1393,273],{"class":201},[180,1395,486],{"class":201},[180,1397,1299],{"class":205},[180,1399,492],{"class":201},[180,1401,750],{"class":197},[180,1403,1405,1407,1409,1411,1414,1416,1418,1420],{"class":182,"line":1404},25,[180,1406,230],{"class":193},[180,1408,198],{"class":197},[180,1410,202],{"class":201},[180,1412,1413],{"class":205},"Player level:",[180,1415,202],{"class":201},[180,1417,849],{"class":197},[180,1419,872],{"class":383},[180,1421,211],{"class":197},[180,1423,1425],{"class":182,"line":1424},26,[180,1426,218],{"emptyLinePlaceholder":217},[180,1428,1430],{"class":182,"line":1429},27,[180,1431,1002],{"class":186},[180,1433,1435,1437,1439,1441],{"class":182,"line":1434},28,[180,1436,539],{"class":383},[180,1438,387],{"class":197},[180,1440,949],{"class":193},[180,1442,952],{"class":197},[180,1444,1446,1448,1450,1452,1454,1456],{"class":182,"line":1445},29,[180,1447,957],{"class":197},[180,1449,273],{"class":201},[180,1451,486],{"class":201},[180,1453,1299],{"class":205},[180,1455,492],{"class":201},[180,1457,1458],{"class":197},"},\n",[180,1460,1462,1464,1466,1469,1471,1473,1475,1477,1479,1481,1484,1486,1489],{"class":182,"line":1461},30,[180,1463,976],{"class":197},[180,1465,202],{"class":201},[180,1467,1468],{"class":205},"$inc",[180,1470,202],{"class":201},[180,1472,986],{"class":197},[180,1474,273],{"class":201},[180,1476,991],{"class":197},[180,1478,273],{"class":201},[180,1480,708],{"class":707},[180,1482,1483],{"class":197},", credits ",[180,1485,273],{"class":201},[180,1487,1488],{"class":707}," 100",[180,1490,1491],{"class":197}," } }\n",[180,1493,1495],{"class":182,"line":1494},31,[180,1496,211],{"class":197},[180,1498,1500],{"class":182,"line":1499},32,[180,1501,218],{"emptyLinePlaceholder":217},[180,1503,1505],{"class":182,"line":1504},33,[180,1506,1507],{"class":186},"-- Verify update\n",[180,1509,1511,1514,1516,1518,1520,1522,1524,1526,1528,1530,1532],{"class":182,"line":1510},34,[180,1512,1513],{"class":197},"player ",[180,1515,273],{"class":201},[180,1517,656],{"class":383},[180,1519,387],{"class":197},[180,1521,802],{"class":193},[180,1523,1391],{"class":197},[180,1525,273],{"class":201},[180,1527,486],{"class":201},[180,1529,1299],{"class":205},[180,1531,492],{"class":201},[180,1533,750],{"class":197},[180,1535,1537,1539,1541,1543,1546,1548,1550,1552,1555],{"class":182,"line":1536},35,[180,1538,230],{"class":193},[180,1540,198],{"class":197},[180,1542,202],{"class":201},[180,1544,1545],{"class":205},"New level:",[180,1547,202],{"class":201},[180,1549,849],{"class":197},[180,1551,872],{"class":383},[180,1553,1554],{"class":197},")      ",[180,1556,1557],{"class":186},"-- 2\n",[180,1559,1561,1563,1565,1567,1570,1572,1574,1576,1579],{"class":182,"line":1560},36,[180,1562,230],{"class":193},[180,1564,198],{"class":197},[180,1566,202],{"class":201},[180,1568,1569],{"class":205},"New credits:",[180,1571,202],{"class":201},[180,1573,849],{"class":197},[180,1575,892],{"class":383},[180,1577,1578],{"class":197},")  ",[180,1580,1581],{"class":186},"-- 600\n",[180,1583,1585],{"class":182,"line":1584},37,[180,1586,218],{"emptyLinePlaceholder":217},[180,1588,1590],{"class":182,"line":1589},38,[180,1591,1592],{"class":186},"-- Delete\n",[180,1594,1596,1598,1600,1602,1604,1606,1608,1610,1612],{"class":182,"line":1595},39,[180,1597,539],{"class":383},[180,1599,387],{"class":197},[180,1601,1065],{"class":193},[180,1603,1391],{"class":197},[180,1605,273],{"class":201},[180,1607,486],{"class":201},[180,1609,1299],{"class":205},[180,1611,492],{"class":201},[180,1613,750],{"class":197},[180,1615,1617,1619,1621,1623,1626,1628],{"class":182,"line":1616},40,[180,1618,230],{"class":193},[180,1620,198],{"class":197},[180,1622,202],{"class":201},[180,1624,1625],{"class":205},"Player deleted",[180,1627,202],{"class":201},[180,1629,211],{"class":197},[165,1631,1633],{"id":1632},"error-handling","Error Handling",[161,1635,1636],{},"Always handle potential errors:",[170,1638,1640],{"className":172,"code":1639,"language":174,"meta":175,"style":175},"-- Check connection\nlocal client = MongoDB.Client(\"mongodb:\u002F\u002Flocalhost:27017\")\nif not client then\n    print(\"ERROR: Could not connect to MongoDB\")\n    print(\"Please check that MongoDB is running\")\n    return\nend\n\n-- Check operations\nlocal result = players:InsertOne({ name = \"test\" })\nif not result then\n    print(\"ERROR: Insert failed\")\nend\n",[177,1641,1642,1647,1669,1679,1694,1709,1713,1717,1721,1726,1755,1765,1780],{"__ignoreMap":175},[180,1643,1644],{"class":182,"line":183},[180,1645,1646],{"class":186},"-- Check connection\n",[180,1648,1649,1651,1653,1655,1657,1659,1661,1663,1665,1667],{"class":182,"line":190},[180,1650,267],{"class":201},[180,1652,270],{"class":197},[180,1654,273],{"class":201},[180,1656,276],{"class":197},[180,1658,279],{"class":193},[180,1660,198],{"class":197},[180,1662,202],{"class":201},[180,1664,286],{"class":205},[180,1666,202],{"class":201},[180,1668,211],{"class":197},[180,1670,1671,1673,1675,1677],{"class":182,"line":214},[180,1672,300],{"class":299},[180,1674,303],{"class":201},[180,1676,270],{"class":197},[180,1678,308],{"class":299},[180,1680,1681,1683,1685,1687,1690,1692],{"class":182,"line":221},[180,1682,313],{"class":193},[180,1684,198],{"class":197},[180,1686,202],{"class":201},[180,1688,1689],{"class":205},"ERROR: Could not connect to MongoDB",[180,1691,202],{"class":201},[180,1693,211],{"class":197},[180,1695,1696,1698,1700,1702,1705,1707],{"class":182,"line":227},[180,1697,313],{"class":193},[180,1699,198],{"class":197},[180,1701,202],{"class":201},[180,1703,1704],{"class":205},"Please check that MongoDB is running",[180,1706,202],{"class":201},[180,1708,211],{"class":197},[180,1710,1711],{"class":182,"line":327},[180,1712,330],{"class":299},[180,1714,1715],{"class":182,"line":333},[180,1716,336],{"class":299},[180,1718,1719],{"class":182,"line":339},[180,1720,218],{"emptyLinePlaceholder":217},[180,1722,1723],{"class":182,"line":344},[180,1724,1725],{"class":186},"-- Check operations\n",[180,1727,1728,1730,1733,1735,1737,1739,1741,1744,1746,1748,1751,1753],{"class":182,"line":753},[180,1729,267],{"class":201},[180,1731,1732],{"class":197}," result ",[180,1734,273],{"class":201},[180,1736,656],{"class":383},[180,1738,387],{"class":197},[180,1740,661],{"class":193},[180,1742,1743],{"class":197},"({ name ",[180,1745,273],{"class":201},[180,1747,486],{"class":201},[180,1749,1750],{"class":205},"test",[180,1752,492],{"class":201},[180,1754,750],{"class":197},[180,1756,1757,1759,1761,1763],{"class":182,"line":758},[180,1758,300],{"class":299},[180,1760,303],{"class":201},[180,1762,1732],{"class":197},[180,1764,308],{"class":299},[180,1766,1767,1769,1771,1773,1776,1778],{"class":182,"line":917},[180,1768,313],{"class":193},[180,1770,198],{"class":197},[180,1772,202],{"class":201},[180,1774,1775],{"class":205},"ERROR: Insert failed",[180,1777,202],{"class":201},[180,1779,211],{"class":197},[180,1781,1782],{"class":182,"line":1261},[180,1783,336],{"class":299},[165,1785,1787],{"id":1786},"next-steps","Next Steps",[161,1789,1790],{},"Now that you've completed the basics, explore:",[1792,1793,1794,1800,1805],"card-group",{},[1795,1796,1797],"card",{"icon":47,"title":49,"to":50},[161,1798,1799],{},"Master all database operations",[1795,1801,1802],{"icon":90,"title":75,"to":76},[161,1803,1804],{},"Non-blocking database calls",[1795,1806,1807],{"icon":108,"title":103,"to":104},[161,1808,1809],{},"Real-world code examples",[1811,1812,1813],"style",{},"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 .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}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 .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 .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":175,"searchDepth":183,"depth":190,"links":1815},[1816,1817,1818,1819,1820,1821,1822,1823,1824,1825,1826],{"id":167,"depth":190,"text":168},{"id":251,"depth":190,"text":252},{"id":360,"depth":190,"text":361},{"id":504,"depth":190,"text":505},{"id":633,"depth":190,"text":634},{"id":775,"depth":190,"text":776},{"id":922,"depth":190,"text":923},{"id":1038,"depth":190,"text":1039},{"id":1114,"depth":190,"text":1115},{"id":1632,"depth":190,"text":1633},{"id":1786,"depth":190,"text":1787},"Write your first MongoDB operations with gmsv_mongo","md",null,{},{"icon":25},{"title":22,"description":1827},"jshCMuG3Fay8uogTW65rJf3OP2Srzq6WKCtOYHu04Uw",[1835,1837],{"title":17,"path":18,"stem":19,"description":1836,"icon":20,"children":-1},"Configure gmsv_mongo connection options and settings",{"title":27,"path":28,"stem":29,"description":1838,"icon":32,"children":-1},"Manage MongoDB connections with gmsv_mongo",1774271023675]