[{"data":1,"prerenderedAt":1705},["ShallowReactive",2],{"navigation":3,"\u002Fconnection\u002Fbasic":151,"\u002Fconnection\u002Fbasic-surround":1700},[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":34,"body":153,"description":1693,"extension":1694,"links":1695,"meta":1696,"navigation":1697,"path":35,"seo":1698,"stem":36,"__hash__":1699},"docs\u002F2.connection\u002F2.basic.md",{"type":154,"value":155,"toc":1672},"minimark",[156,160,164,169,172,306,310,315,412,416,518,522,587,591,656,660,725,729,732,1088,1092,1096,1099,1230,1234,1487,1491,1495,1532,1536,1607,1611,1649,1653,1668],[157,158,34],"h1",{"id":159},"basic-connection",[161,162,163],"p",{},"Learn how to create basic MongoDB connections with gmsv_mongo.",[165,166,168],"h2",{"id":167},"simple-connection","Simple Connection",[161,170,171],{},"The simplest way to connect to MongoDB:",[173,174,179],"pre",{"className":175,"code":176,"language":177,"meta":178,"style":178},"language-lua shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","require(\"mongo\")\n\nlocal client = MongoDB.Client(\"mongodb:\u002F\u002Flocalhost:27017\")\n\nif client then\n    print(\"✓ Connected to MongoDB!\")\nelse\n    print(\"✗ Connection failed!\")\nend\n","lua","",[180,181,182,208,215,244,249,261,278,284,300],"code",{"__ignoreMap":178},[183,184,187,191,195,199,203,205],"span",{"class":185,"line":186},"line",1,[183,188,190],{"class":189},"s2Zo4","require",[183,192,194],{"class":193},"sTEyZ","(",[183,196,198],{"class":197},"sMK4o","\"",[183,200,202],{"class":201},"sfazB","mongo",[183,204,198],{"class":197},[183,206,207],{"class":193},")\n",[183,209,211],{"class":185,"line":210},2,[183,212,214],{"emptyLinePlaceholder":213},true,"\n",[183,216,218,221,224,227,230,233,235,237,240,242],{"class":185,"line":217},3,[183,219,220],{"class":197},"local",[183,222,223],{"class":193}," client ",[183,225,226],{"class":197},"=",[183,228,229],{"class":193}," MongoDB.",[183,231,232],{"class":189},"Client",[183,234,194],{"class":193},[183,236,198],{"class":197},[183,238,239],{"class":201},"mongodb:\u002F\u002Flocalhost:27017",[183,241,198],{"class":197},[183,243,207],{"class":193},[183,245,247],{"class":185,"line":246},4,[183,248,214],{"emptyLinePlaceholder":213},[183,250,252,256,258],{"class":185,"line":251},5,[183,253,255],{"class":254},"s7zQu","if",[183,257,223],{"class":193},[183,259,260],{"class":254},"then\n",[183,262,264,267,269,271,274,276],{"class":185,"line":263},6,[183,265,266],{"class":189},"    print",[183,268,194],{"class":193},[183,270,198],{"class":197},[183,272,273],{"class":201},"✓ Connected to MongoDB!",[183,275,198],{"class":197},[183,277,207],{"class":193},[183,279,281],{"class":185,"line":280},7,[183,282,283],{"class":254},"else\n",[183,285,287,289,291,293,296,298],{"class":185,"line":286},8,[183,288,266],{"class":189},[183,290,194],{"class":193},[183,292,198],{"class":197},[183,294,295],{"class":201},"✗ Connection failed!",[183,297,198],{"class":197},[183,299,207],{"class":193},[183,301,303],{"class":185,"line":302},9,[183,304,305],{"class":254},"end\n",[165,307,309],{"id":308},"connection-string-formats","Connection String Formats",[311,312,314],"h3",{"id":313},"local-mongodb-no-authentication","Local MongoDB (No Authentication)",[173,316,318],{"className":175,"code":317,"language":177,"meta":178,"style":178},"-- Default port (27017)\nlocal client = MongoDB.Client(\"mongodb:\u002F\u002Flocalhost:27017\")\n\n-- Custom port\nlocal client = MongoDB.Client(\"mongodb:\u002F\u002Flocalhost:27018\")\n\n-- Using IP address\nlocal client = MongoDB.Client(\"mongodb:\u002F\u002F127.0.0.1:27017\")\n",[180,319,320,326,348,352,357,380,384,389],{"__ignoreMap":178},[183,321,322],{"class":185,"line":186},[183,323,325],{"class":324},"sHwdD","-- Default port (27017)\n",[183,327,328,330,332,334,336,338,340,342,344,346],{"class":185,"line":210},[183,329,220],{"class":197},[183,331,223],{"class":193},[183,333,226],{"class":197},[183,335,229],{"class":193},[183,337,232],{"class":189},[183,339,194],{"class":193},[183,341,198],{"class":197},[183,343,239],{"class":201},[183,345,198],{"class":197},[183,347,207],{"class":193},[183,349,350],{"class":185,"line":217},[183,351,214],{"emptyLinePlaceholder":213},[183,353,354],{"class":185,"line":246},[183,355,356],{"class":324},"-- Custom port\n",[183,358,359,361,363,365,367,369,371,373,376,378],{"class":185,"line":251},[183,360,220],{"class":197},[183,362,223],{"class":193},[183,364,226],{"class":197},[183,366,229],{"class":193},[183,368,232],{"class":189},[183,370,194],{"class":193},[183,372,198],{"class":197},[183,374,375],{"class":201},"mongodb:\u002F\u002Flocalhost:27018",[183,377,198],{"class":197},[183,379,207],{"class":193},[183,381,382],{"class":185,"line":263},[183,383,214],{"emptyLinePlaceholder":213},[183,385,386],{"class":185,"line":280},[183,387,388],{"class":324},"-- Using IP address\n",[183,390,391,393,395,397,399,401,403,405,408,410],{"class":185,"line":286},[183,392,220],{"class":197},[183,394,223],{"class":193},[183,396,226],{"class":197},[183,398,229],{"class":193},[183,400,232],{"class":189},[183,402,194],{"class":193},[183,404,198],{"class":197},[183,406,407],{"class":201},"mongodb:\u002F\u002F127.0.0.1:27017",[183,409,198],{"class":197},[183,411,207],{"class":193},[311,413,415],{"id":414},"with-authentication","With Authentication",[173,417,419],{"className":175,"code":418,"language":177,"meta":178,"style":178},"-- Basic authentication\nlocal client = MongoDB.Client(\"mongodb:\u002F\u002Fusername:password@localhost:27017\")\n\n-- With specific auth database\nlocal client = MongoDB.Client(\"mongodb:\u002F\u002Fadmin:secretpass@localhost:27017\u002Fadmin\")\n\n-- URL-encoded special characters in password\n-- If password is \"p@ss:word\", encode as \"p%40ss%3Aword\"\nlocal client = MongoDB.Client(\"mongodb:\u002F\u002Fuser:p%40ss%3Aword@localhost:27017\")\n",[180,420,421,426,449,453,458,481,485,490,495],{"__ignoreMap":178},[183,422,423],{"class":185,"line":186},[183,424,425],{"class":324},"-- Basic authentication\n",[183,427,428,430,432,434,436,438,440,442,445,447],{"class":185,"line":210},[183,429,220],{"class":197},[183,431,223],{"class":193},[183,433,226],{"class":197},[183,435,229],{"class":193},[183,437,232],{"class":189},[183,439,194],{"class":193},[183,441,198],{"class":197},[183,443,444],{"class":201},"mongodb:\u002F\u002Fusername:password@localhost:27017",[183,446,198],{"class":197},[183,448,207],{"class":193},[183,450,451],{"class":185,"line":217},[183,452,214],{"emptyLinePlaceholder":213},[183,454,455],{"class":185,"line":246},[183,456,457],{"class":324},"-- With specific auth database\n",[183,459,460,462,464,466,468,470,472,474,477,479],{"class":185,"line":251},[183,461,220],{"class":197},[183,463,223],{"class":193},[183,465,226],{"class":197},[183,467,229],{"class":193},[183,469,232],{"class":189},[183,471,194],{"class":193},[183,473,198],{"class":197},[183,475,476],{"class":201},"mongodb:\u002F\u002Fadmin:secretpass@localhost:27017\u002Fadmin",[183,478,198],{"class":197},[183,480,207],{"class":193},[183,482,483],{"class":185,"line":263},[183,484,214],{"emptyLinePlaceholder":213},[183,486,487],{"class":185,"line":280},[183,488,489],{"class":324},"-- URL-encoded special characters in password\n",[183,491,492],{"class":185,"line":286},[183,493,494],{"class":324},"-- If password is \"p@ss:word\", encode as \"p%40ss%3Aword\"\n",[183,496,497,499,501,503,505,507,509,511,514,516],{"class":185,"line":302},[183,498,220],{"class":197},[183,500,223],{"class":193},[183,502,226],{"class":197},[183,504,229],{"class":193},[183,506,232],{"class":189},[183,508,194],{"class":193},[183,510,198],{"class":197},[183,512,513],{"class":201},"mongodb:\u002F\u002Fuser:p%40ss%3Aword@localhost:27017",[183,515,198],{"class":197},[183,517,207],{"class":193},[311,519,521],{"id":520},"remote-servers","Remote Servers",[173,523,525],{"className":175,"code":524,"language":177,"meta":178,"style":178},"-- Remote server\nlocal client = MongoDB.Client(\"mongodb:\u002F\u002Fuser:pass@192.168.1.100:27017\")\n\n-- With hostname\nlocal client = MongoDB.Client(\"mongodb:\u002F\u002Fuser:pass@mongo.example.com:27017\")\n",[180,526,527,532,555,559,564],{"__ignoreMap":178},[183,528,529],{"class":185,"line":186},[183,530,531],{"class":324},"-- Remote server\n",[183,533,534,536,538,540,542,544,546,548,551,553],{"class":185,"line":210},[183,535,220],{"class":197},[183,537,223],{"class":193},[183,539,226],{"class":197},[183,541,229],{"class":193},[183,543,232],{"class":189},[183,545,194],{"class":193},[183,547,198],{"class":197},[183,549,550],{"class":201},"mongodb:\u002F\u002Fuser:pass@192.168.1.100:27017",[183,552,198],{"class":197},[183,554,207],{"class":193},[183,556,557],{"class":185,"line":217},[183,558,214],{"emptyLinePlaceholder":213},[183,560,561],{"class":185,"line":246},[183,562,563],{"class":324},"-- With hostname\n",[183,565,566,568,570,572,574,576,578,580,583,585],{"class":185,"line":251},[183,567,220],{"class":197},[183,569,223],{"class":193},[183,571,226],{"class":197},[183,573,229],{"class":193},[183,575,232],{"class":189},[183,577,194],{"class":193},[183,579,198],{"class":197},[183,581,582],{"class":201},"mongodb:\u002F\u002Fuser:pass@mongo.example.com:27017",[183,584,198],{"class":197},[183,586,207],{"class":193},[311,588,590],{"id":589},"mongodb-atlas-cloud","MongoDB Atlas (Cloud)",[173,592,594],{"className":175,"code":593,"language":177,"meta":178,"style":178},"-- MongoDB Atlas uses SRV records\nlocal client = MongoDB.Client(\"mongodb+srv:\u002F\u002Fuser:pass@cluster0.xxxxx.mongodb.net\")\n\n-- With database name\nlocal client = MongoDB.Client(\"mongodb+srv:\u002F\u002Fuser:pass@cluster0.xxxxx.mongodb.net\u002Fmydb\")\n",[180,595,596,601,624,628,633],{"__ignoreMap":178},[183,597,598],{"class":185,"line":186},[183,599,600],{"class":324},"-- MongoDB Atlas uses SRV records\n",[183,602,603,605,607,609,611,613,615,617,620,622],{"class":185,"line":210},[183,604,220],{"class":197},[183,606,223],{"class":193},[183,608,226],{"class":197},[183,610,229],{"class":193},[183,612,232],{"class":189},[183,614,194],{"class":193},[183,616,198],{"class":197},[183,618,619],{"class":201},"mongodb+srv:\u002F\u002Fuser:pass@cluster0.xxxxx.mongodb.net",[183,621,198],{"class":197},[183,623,207],{"class":193},[183,625,626],{"class":185,"line":217},[183,627,214],{"emptyLinePlaceholder":213},[183,629,630],{"class":185,"line":246},[183,631,632],{"class":324},"-- With database name\n",[183,634,635,637,639,641,643,645,647,649,652,654],{"class":185,"line":251},[183,636,220],{"class":197},[183,638,223],{"class":193},[183,640,226],{"class":197},[183,642,229],{"class":193},[183,644,232],{"class":189},[183,646,194],{"class":193},[183,648,198],{"class":197},[183,650,651],{"class":201},"mongodb+srv:\u002F\u002Fuser:pass@cluster0.xxxxx.mongodb.net\u002Fmydb",[183,653,198],{"class":197},[183,655,207],{"class":193},[311,657,659],{"id":658},"replica-sets","Replica Sets",[173,661,663],{"className":175,"code":662,"language":177,"meta":178,"style":178},"-- Multiple hosts\nlocal client = MongoDB.Client(\"mongodb:\u002F\u002Fhost1:27017,host2:27017,host3:27017\")\n\n-- With replica set name\nlocal client = MongoDB.Client(\"mongodb:\u002F\u002Fhost1:27017,host2:27017\u002F?replicaSet=myReplicaSet\")\n",[180,664,665,670,693,697,702],{"__ignoreMap":178},[183,666,667],{"class":185,"line":186},[183,668,669],{"class":324},"-- Multiple hosts\n",[183,671,672,674,676,678,680,682,684,686,689,691],{"class":185,"line":210},[183,673,220],{"class":197},[183,675,223],{"class":193},[183,677,226],{"class":197},[183,679,229],{"class":193},[183,681,232],{"class":189},[183,683,194],{"class":193},[183,685,198],{"class":197},[183,687,688],{"class":201},"mongodb:\u002F\u002Fhost1:27017,host2:27017,host3:27017",[183,690,198],{"class":197},[183,692,207],{"class":193},[183,694,695],{"class":185,"line":217},[183,696,214],{"emptyLinePlaceholder":213},[183,698,699],{"class":185,"line":246},[183,700,701],{"class":324},"-- With replica set name\n",[183,703,704,706,708,710,712,714,716,718,721,723],{"class":185,"line":251},[183,705,220],{"class":197},[183,707,223],{"class":193},[183,709,226],{"class":197},[183,711,229],{"class":193},[183,713,232],{"class":189},[183,715,194],{"class":193},[183,717,198],{"class":197},[183,719,720],{"class":201},"mongodb:\u002F\u002Fhost1:27017,host2:27017\u002F?replicaSet=myReplicaSet",[183,722,198],{"class":197},[183,724,207],{"class":193},[165,726,728],{"id":727},"connection-verification","Connection Verification",[161,730,731],{},"Always verify your connection before performing operations:",[173,733,735],{"className":175,"code":734,"language":177,"meta":178,"style":178},"require(\"mongo\")\n\nlocal function connectToMongo(connectionString)\n    local client = MongoDB.Client(connectionString)\n\n    if not client then\n        print(\"ERROR: Failed to connect to MongoDB\")\n        print(\"Check that:\")\n        print(\"  - MongoDB server is running\")\n        print(\"  - Connection string is correct\")\n        print(\"  - Network allows the connection\")\n        return nil\n    end\n\n    -- Test by listing databases\n    local databases = client:ListDatabases()\n    if databases then\n        print(\"✓ Connection verified!\")\n        print(\"  Found\", #databases, \"database(s)\")\n        return client\n    else\n        print(\"✗ Connection test failed\")\n        return nil\n    end\nend\n\n-- Usage\nlocal client = connectToMongo(\"mongodb:\u002F\u002Flocalhost:27017\")\nif client then\n    -- Proceed with operations\nend\n",[180,736,737,751,755,773,789,793,805,821,836,851,867,883,892,898,903,909,932,941,957,989,997,1003,1019,1026,1031,1036,1041,1047,1068,1077,1083],{"__ignoreMap":178},[183,738,739,741,743,745,747,749],{"class":185,"line":186},[183,740,190],{"class":189},[183,742,194],{"class":193},[183,744,198],{"class":197},[183,746,202],{"class":201},[183,748,198],{"class":197},[183,750,207],{"class":193},[183,752,753],{"class":185,"line":210},[183,754,214],{"emptyLinePlaceholder":213},[183,756,757,759,762,765,767,771],{"class":185,"line":217},[183,758,220],{"class":197},[183,760,761],{"class":254}," function",[183,763,764],{"class":189}," connectToMongo",[183,766,194],{"class":197},[183,768,770],{"class":769},"sHdIc","connectionString",[183,772,207],{"class":197},[183,774,775,778,780,782,784,786],{"class":185,"line":246},[183,776,777],{"class":197},"    local",[183,779,223],{"class":193},[183,781,226],{"class":197},[183,783,229],{"class":193},[183,785,232],{"class":189},[183,787,788],{"class":193},"(connectionString)\n",[183,790,791],{"class":185,"line":251},[183,792,214],{"emptyLinePlaceholder":213},[183,794,795,798,801,803],{"class":185,"line":263},[183,796,797],{"class":254},"    if",[183,799,800],{"class":197}," not",[183,802,223],{"class":193},[183,804,260],{"class":254},[183,806,807,810,812,814,817,819],{"class":185,"line":280},[183,808,809],{"class":189},"        print",[183,811,194],{"class":193},[183,813,198],{"class":197},[183,815,816],{"class":201},"ERROR: Failed to connect to MongoDB",[183,818,198],{"class":197},[183,820,207],{"class":193},[183,822,823,825,827,829,832,834],{"class":185,"line":286},[183,824,809],{"class":189},[183,826,194],{"class":193},[183,828,198],{"class":197},[183,830,831],{"class":201},"Check that:",[183,833,198],{"class":197},[183,835,207],{"class":193},[183,837,838,840,842,844,847,849],{"class":185,"line":302},[183,839,809],{"class":189},[183,841,194],{"class":193},[183,843,198],{"class":197},[183,845,846],{"class":201},"  - MongoDB server is running",[183,848,198],{"class":197},[183,850,207],{"class":193},[183,852,854,856,858,860,863,865],{"class":185,"line":853},10,[183,855,809],{"class":189},[183,857,194],{"class":193},[183,859,198],{"class":197},[183,861,862],{"class":201},"  - Connection string is correct",[183,864,198],{"class":197},[183,866,207],{"class":193},[183,868,870,872,874,876,879,881],{"class":185,"line":869},11,[183,871,809],{"class":189},[183,873,194],{"class":193},[183,875,198],{"class":197},[183,877,878],{"class":201},"  - Network allows the connection",[183,880,198],{"class":197},[183,882,207],{"class":193},[183,884,886,889],{"class":185,"line":885},12,[183,887,888],{"class":254},"        return",[183,890,891],{"class":197}," nil\n",[183,893,895],{"class":185,"line":894},13,[183,896,897],{"class":254},"    end\n",[183,899,901],{"class":185,"line":900},14,[183,902,214],{"emptyLinePlaceholder":213},[183,904,906],{"class":185,"line":905},15,[183,907,908],{"class":324},"    -- Test by listing databases\n",[183,910,912,914,917,919,923,926,929],{"class":185,"line":911},16,[183,913,777],{"class":197},[183,915,916],{"class":193}," databases ",[183,918,226],{"class":197},[183,920,922],{"class":921},"sBMFI"," client",[183,924,925],{"class":193},":",[183,927,928],{"class":189},"ListDatabases",[183,930,931],{"class":193},"()\n",[183,933,935,937,939],{"class":185,"line":934},17,[183,936,797],{"class":254},[183,938,916],{"class":193},[183,940,260],{"class":254},[183,942,944,946,948,950,953,955],{"class":185,"line":943},18,[183,945,809],{"class":189},[183,947,194],{"class":193},[183,949,198],{"class":197},[183,951,952],{"class":201},"✓ Connection verified!",[183,954,198],{"class":197},[183,956,207],{"class":193},[183,958,960,962,964,966,969,971,974,977,980,982,985,987],{"class":185,"line":959},19,[183,961,809],{"class":189},[183,963,194],{"class":193},[183,965,198],{"class":197},[183,967,968],{"class":201},"  Found",[183,970,198],{"class":197},[183,972,973],{"class":193},", ",[183,975,976],{"class":197},"#",[183,978,979],{"class":193},"databases, ",[183,981,198],{"class":197},[183,983,984],{"class":201},"database(s)",[183,986,198],{"class":197},[183,988,207],{"class":193},[183,990,992,994],{"class":185,"line":991},20,[183,993,888],{"class":254},[183,995,996],{"class":193}," client\n",[183,998,1000],{"class":185,"line":999},21,[183,1001,1002],{"class":254},"    else\n",[183,1004,1006,1008,1010,1012,1015,1017],{"class":185,"line":1005},22,[183,1007,809],{"class":189},[183,1009,194],{"class":193},[183,1011,198],{"class":197},[183,1013,1014],{"class":201},"✗ Connection test failed",[183,1016,198],{"class":197},[183,1018,207],{"class":193},[183,1020,1022,1024],{"class":185,"line":1021},23,[183,1023,888],{"class":254},[183,1025,891],{"class":197},[183,1027,1029],{"class":185,"line":1028},24,[183,1030,897],{"class":254},[183,1032,1034],{"class":185,"line":1033},25,[183,1035,305],{"class":254},[183,1037,1039],{"class":185,"line":1038},26,[183,1040,214],{"emptyLinePlaceholder":213},[183,1042,1044],{"class":185,"line":1043},27,[183,1045,1046],{"class":324},"-- Usage\n",[183,1048,1050,1052,1054,1056,1058,1060,1062,1064,1066],{"class":185,"line":1049},28,[183,1051,220],{"class":197},[183,1053,223],{"class":193},[183,1055,226],{"class":197},[183,1057,764],{"class":189},[183,1059,194],{"class":193},[183,1061,198],{"class":197},[183,1063,239],{"class":201},[183,1065,198],{"class":197},[183,1067,207],{"class":193},[183,1069,1071,1073,1075],{"class":185,"line":1070},29,[183,1072,255],{"class":254},[183,1074,223],{"class":193},[183,1076,260],{"class":254},[183,1078,1080],{"class":185,"line":1079},30,[183,1081,1082],{"class":324},"    -- Proceed with operations\n",[183,1084,1086],{"class":185,"line":1085},31,[183,1087,305],{"class":254},[165,1089,1091],{"id":1090},"connection-patterns","Connection Patterns",[311,1093,1095],{"id":1094},"singleton-pattern","Singleton Pattern",[161,1097,1098],{},"For most Garry's Mod addons, use a single connection:",[173,1100,1102],{"className":175,"code":1101,"language":177,"meta":178,"style":178},"-- In your addon's initialization\nlocal MongoClient = nil\n\nlocal function GetMongoClient()\n    if not MongoClient then\n        MongoClient = MongoDB.Client(\"mongodb:\u002F\u002Flocalhost:27017\")\n    end\n    return MongoClient\nend\n\n-- Usage anywhere in your addon\nlocal client = GetMongoClient()\nlocal db = client:Database(\"mydb\")\n",[180,1103,1104,1109,1120,1124,1135,1145,1166,1170,1178,1182,1186,1191,1203],{"__ignoreMap":178},[183,1105,1106],{"class":185,"line":186},[183,1107,1108],{"class":324},"-- In your addon's initialization\n",[183,1110,1111,1113,1116,1118],{"class":185,"line":210},[183,1112,220],{"class":197},[183,1114,1115],{"class":193}," MongoClient ",[183,1117,226],{"class":197},[183,1119,891],{"class":197},[183,1121,1122],{"class":185,"line":217},[183,1123,214],{"emptyLinePlaceholder":213},[183,1125,1126,1128,1130,1133],{"class":185,"line":246},[183,1127,220],{"class":197},[183,1129,761],{"class":254},[183,1131,1132],{"class":189}," GetMongoClient",[183,1134,931],{"class":197},[183,1136,1137,1139,1141,1143],{"class":185,"line":251},[183,1138,797],{"class":254},[183,1140,800],{"class":197},[183,1142,1115],{"class":193},[183,1144,260],{"class":254},[183,1146,1147,1150,1152,1154,1156,1158,1160,1162,1164],{"class":185,"line":263},[183,1148,1149],{"class":193},"        MongoClient ",[183,1151,226],{"class":197},[183,1153,229],{"class":193},[183,1155,232],{"class":189},[183,1157,194],{"class":193},[183,1159,198],{"class":197},[183,1161,239],{"class":201},[183,1163,198],{"class":197},[183,1165,207],{"class":193},[183,1167,1168],{"class":185,"line":280},[183,1169,897],{"class":254},[183,1171,1172,1175],{"class":185,"line":286},[183,1173,1174],{"class":254},"    return",[183,1176,1177],{"class":193}," MongoClient\n",[183,1179,1180],{"class":185,"line":302},[183,1181,305],{"class":254},[183,1183,1184],{"class":185,"line":853},[183,1185,214],{"emptyLinePlaceholder":213},[183,1187,1188],{"class":185,"line":869},[183,1189,1190],{"class":324},"-- Usage anywhere in your addon\n",[183,1192,1193,1195,1197,1199,1201],{"class":185,"line":885},[183,1194,220],{"class":197},[183,1196,223],{"class":193},[183,1198,226],{"class":197},[183,1200,1132],{"class":189},[183,1202,931],{"class":193},[183,1204,1205,1207,1210,1212,1214,1216,1219,1221,1223,1226,1228],{"class":185,"line":894},[183,1206,220],{"class":197},[183,1208,1209],{"class":193}," db ",[183,1211,226],{"class":197},[183,1213,922],{"class":921},[183,1215,925],{"class":193},[183,1217,1218],{"class":189},"Database",[183,1220,194],{"class":193},[183,1222,198],{"class":197},[183,1224,1225],{"class":201},"mydb",[183,1227,198],{"class":197},[183,1229,207],{"class":193},[311,1231,1233],{"id":1232},"module-pattern","Module Pattern",[173,1235,1237],{"className":175,"code":1236,"language":177,"meta":178,"style":178},"-- mongo_connection.lua\nlocal M = {}\n\nM.client = nil\nM.db = nil\n\nfunction M.Initialize(connectionString, dbName)\n    M.client = MongoDB.Client(connectionString)\n    if M.client then\n        M.db = M.client:Database(dbName)\n        return true\n    end\n    return false\nend\n\nfunction M.GetDatabase()\n    return M.db\nend\n\nfunction M.GetCollection(name)\n    if M.db then\n        return M.db:Collection(name)\n    end\n    return nil\nend\n\nreturn M\n",[180,1238,1239,1244,1256,1260,1273,1284,1288,1314,1329,1341,1361,1368,1372,1379,1383,1387,1400,1409,1413,1417,1435,1445,1461,1465,1471,1475,1479],{"__ignoreMap":178},[183,1240,1241],{"class":185,"line":186},[183,1242,1243],{"class":324},"-- mongo_connection.lua\n",[183,1245,1246,1248,1251,1253],{"class":185,"line":210},[183,1247,220],{"class":197},[183,1249,1250],{"class":193}," M ",[183,1252,226],{"class":197},[183,1254,1255],{"class":193}," {}\n",[183,1257,1258],{"class":185,"line":217},[183,1259,214],{"emptyLinePlaceholder":213},[183,1261,1262,1265,1268,1271],{"class":185,"line":246},[183,1263,1264],{"class":193},"M.",[183,1266,1267],{"class":921},"client",[183,1269,1270],{"class":197}," =",[183,1272,891],{"class":197},[183,1274,1275,1277,1280,1282],{"class":185,"line":251},[183,1276,1264],{"class":193},[183,1278,1279],{"class":921},"db",[183,1281,1270],{"class":197},[183,1283,891],{"class":197},[183,1285,1286],{"class":185,"line":263},[183,1287,214],{"emptyLinePlaceholder":213},[183,1289,1290,1293,1296,1299,1302,1304,1306,1309,1312],{"class":185,"line":280},[183,1291,1292],{"class":254},"function",[183,1294,1295],{"class":189}," M",[183,1297,1298],{"class":193},".",[183,1300,1301],{"class":189},"Initialize",[183,1303,194],{"class":197},[183,1305,770],{"class":769},[183,1307,1308],{"class":197},",",[183,1310,1311],{"class":769}," dbName",[183,1313,207],{"class":197},[183,1315,1316,1319,1321,1323,1325,1327],{"class":185,"line":286},[183,1317,1318],{"class":193},"    M.",[183,1320,1267],{"class":921},[183,1322,1270],{"class":197},[183,1324,229],{"class":193},[183,1326,232],{"class":189},[183,1328,788],{"class":193},[183,1330,1331,1333,1336,1338],{"class":185,"line":302},[183,1332,797],{"class":254},[183,1334,1335],{"class":193}," M.",[183,1337,1267],{"class":921},[183,1339,1340],{"class":254}," then\n",[183,1342,1343,1346,1348,1350,1352,1354,1356,1358],{"class":185,"line":853},[183,1344,1345],{"class":193},"        M.",[183,1347,1279],{"class":921},[183,1349,1270],{"class":197},[183,1351,1335],{"class":193},[183,1353,1267],{"class":921},[183,1355,925],{"class":193},[183,1357,1218],{"class":189},[183,1359,1360],{"class":193},"(dbName)\n",[183,1362,1363,1365],{"class":185,"line":869},[183,1364,888],{"class":254},[183,1366,1367],{"class":197}," true\n",[183,1369,1370],{"class":185,"line":885},[183,1371,897],{"class":254},[183,1373,1374,1376],{"class":185,"line":894},[183,1375,1174],{"class":254},[183,1377,1378],{"class":197}," false\n",[183,1380,1381],{"class":185,"line":900},[183,1382,305],{"class":254},[183,1384,1385],{"class":185,"line":905},[183,1386,214],{"emptyLinePlaceholder":213},[183,1388,1389,1391,1393,1395,1398],{"class":185,"line":911},[183,1390,1292],{"class":254},[183,1392,1295],{"class":189},[183,1394,1298],{"class":193},[183,1396,1397],{"class":189},"GetDatabase",[183,1399,931],{"class":197},[183,1401,1402,1404,1406],{"class":185,"line":934},[183,1403,1174],{"class":254},[183,1405,1335],{"class":193},[183,1407,1408],{"class":921},"db\n",[183,1410,1411],{"class":185,"line":943},[183,1412,305],{"class":254},[183,1414,1415],{"class":185,"line":959},[183,1416,214],{"emptyLinePlaceholder":213},[183,1418,1419,1421,1423,1425,1428,1430,1433],{"class":185,"line":991},[183,1420,1292],{"class":254},[183,1422,1295],{"class":189},[183,1424,1298],{"class":193},[183,1426,1427],{"class":189},"GetCollection",[183,1429,194],{"class":197},[183,1431,1432],{"class":769},"name",[183,1434,207],{"class":197},[183,1436,1437,1439,1441,1443],{"class":185,"line":999},[183,1438,797],{"class":254},[183,1440,1335],{"class":193},[183,1442,1279],{"class":921},[183,1444,1340],{"class":254},[183,1446,1447,1449,1451,1453,1455,1458],{"class":185,"line":1005},[183,1448,888],{"class":254},[183,1450,1335],{"class":193},[183,1452,1279],{"class":921},[183,1454,925],{"class":193},[183,1456,1457],{"class":189},"Collection",[183,1459,1460],{"class":193},"(name)\n",[183,1462,1463],{"class":185,"line":1021},[183,1464,897],{"class":254},[183,1466,1467,1469],{"class":185,"line":1028},[183,1468,1174],{"class":254},[183,1470,891],{"class":197},[183,1472,1473],{"class":185,"line":1033},[183,1474,305],{"class":254},[183,1476,1477],{"class":185,"line":1038},[183,1478,214],{"emptyLinePlaceholder":213},[183,1480,1481,1484],{"class":185,"line":1043},[183,1482,1483],{"class":254},"return",[183,1485,1486],{"class":193}," M\n",[165,1488,1490],{"id":1489},"error-scenarios","Error Scenarios",[311,1492,1494],{"id":1493},"mongodb-not-running","MongoDB Not Running",[173,1496,1498],{"className":175,"code":1497,"language":177,"meta":178,"style":178},"local client = MongoDB.Client(\"mongodb:\u002F\u002Flocalhost:27017\")\n-- Returns nil if MongoDB server is not running\n-- Check server console for error details\n",[180,1499,1500,1522,1527],{"__ignoreMap":178},[183,1501,1502,1504,1506,1508,1510,1512,1514,1516,1518,1520],{"class":185,"line":186},[183,1503,220],{"class":197},[183,1505,223],{"class":193},[183,1507,226],{"class":197},[183,1509,229],{"class":193},[183,1511,232],{"class":189},[183,1513,194],{"class":193},[183,1515,198],{"class":197},[183,1517,239],{"class":201},[183,1519,198],{"class":197},[183,1521,207],{"class":193},[183,1523,1524],{"class":185,"line":210},[183,1525,1526],{"class":324},"-- Returns nil if MongoDB server is not running\n",[183,1528,1529],{"class":185,"line":217},[183,1530,1531],{"class":324},"-- Check server console for error details\n",[311,1533,1535],{"id":1534},"invalid-connection-string","Invalid Connection String",[173,1537,1539],{"className":175,"code":1538,"language":177,"meta":178,"style":178},"-- Missing protocol - INVALID\nlocal client = MongoDB.Client(\"localhost:27017\")  -- nil\n\n-- Correct format\nlocal client = MongoDB.Client(\"mongodb:\u002F\u002Flocalhost:27017\")  -- works\n",[180,1540,1541,1546,1573,1577,1582],{"__ignoreMap":178},[183,1542,1543],{"class":185,"line":186},[183,1544,1545],{"class":324},"-- Missing protocol - INVALID\n",[183,1547,1548,1550,1552,1554,1556,1558,1560,1562,1565,1567,1570],{"class":185,"line":210},[183,1549,220],{"class":197},[183,1551,223],{"class":193},[183,1553,226],{"class":197},[183,1555,229],{"class":193},[183,1557,232],{"class":189},[183,1559,194],{"class":193},[183,1561,198],{"class":197},[183,1563,1564],{"class":201},"localhost:27017",[183,1566,198],{"class":197},[183,1568,1569],{"class":193},")  ",[183,1571,1572],{"class":324},"-- nil\n",[183,1574,1575],{"class":185,"line":217},[183,1576,214],{"emptyLinePlaceholder":213},[183,1578,1579],{"class":185,"line":246},[183,1580,1581],{"class":324},"-- Correct format\n",[183,1583,1584,1586,1588,1590,1592,1594,1596,1598,1600,1602,1604],{"class":185,"line":251},[183,1585,220],{"class":197},[183,1587,223],{"class":193},[183,1589,226],{"class":197},[183,1591,229],{"class":193},[183,1593,232],{"class":189},[183,1595,194],{"class":193},[183,1597,198],{"class":197},[183,1599,239],{"class":201},[183,1601,198],{"class":197},[183,1603,1569],{"class":193},[183,1605,1606],{"class":324},"-- works\n",[311,1608,1610],{"id":1609},"authentication-failure","Authentication Failure",[173,1612,1614],{"className":175,"code":1613,"language":177,"meta":178,"style":178},"-- Wrong credentials\nlocal client = MongoDB.Client(\"mongodb:\u002F\u002Fwrong:credentials@localhost:27017\")\n-- Returns nil, check console for auth error\n",[180,1615,1616,1621,1644],{"__ignoreMap":178},[183,1617,1618],{"class":185,"line":186},[183,1619,1620],{"class":324},"-- Wrong credentials\n",[183,1622,1623,1625,1627,1629,1631,1633,1635,1637,1640,1642],{"class":185,"line":210},[183,1624,220],{"class":197},[183,1626,223],{"class":193},[183,1628,226],{"class":197},[183,1630,229],{"class":193},[183,1632,232],{"class":189},[183,1634,194],{"class":193},[183,1636,198],{"class":197},[183,1638,1639],{"class":201},"mongodb:\u002F\u002Fwrong:credentials@localhost:27017",[183,1641,198],{"class":197},[183,1643,207],{"class":193},[183,1645,1646],{"class":185,"line":217},[183,1647,1648],{"class":324},"-- Returns nil, check console for auth error\n",[165,1650,1652],{"id":1651},"next-steps","Next Steps",[1654,1655,1656,1663],"ul",{},[1657,1658,1659,1662],"li",{},[1660,1661,39],"a",{"href":40}," - Advanced configuration",[1657,1664,1665,1667],{},[1660,1666,44],{"href":45}," - Working with databases",[1669,1670,1671],"style",{},"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 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 .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 .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 .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}",{"title":178,"searchDepth":186,"depth":210,"links":1673},[1674,1675,1682,1683,1687,1692],{"id":167,"depth":210,"text":168},{"id":308,"depth":210,"text":309,"children":1676},[1677,1678,1679,1680,1681],{"id":313,"depth":217,"text":314},{"id":414,"depth":217,"text":415},{"id":520,"depth":217,"text":521},{"id":589,"depth":217,"text":590},{"id":658,"depth":217,"text":659},{"id":727,"depth":210,"text":728},{"id":1090,"depth":210,"text":1091,"children":1684},[1685,1686],{"id":1094,"depth":217,"text":1095},{"id":1232,"depth":217,"text":1233},{"id":1489,"depth":210,"text":1490,"children":1688},[1689,1690,1691],{"id":1493,"depth":217,"text":1494},{"id":1534,"depth":217,"text":1535},{"id":1609,"depth":217,"text":1610},{"id":1651,"depth":210,"text":1652},"Create simple MongoDB connections","md",null,{},{"icon":37},{"title":34,"description":1693},"Vj84xO9yu0E6fJ4D5VKOXPjk4rl3ihaC0mOS6sbnOng",[1701,1703],{"title":27,"path":28,"stem":29,"description":1702,"icon":32,"children":-1},"Manage MongoDB connections with gmsv_mongo",{"title":39,"path":40,"stem":41,"description":1704,"icon":42,"children":-1},"Configure advanced connection options",1774271023675]