Advanced Features

Database Management

Manage databases and collections

Database Operations

ListDatabases

local databases = client:ListDatabases()
for i, dbName in ipairs(databases) do
    print(i .. ". " .. dbName)
end

Drop Database

-- ⚠️ DANGER: Deletes entire database
local success = db:Drop()

Collection Operations

ListCollections

local collections = db:ListCollections()
for i, name in ipairs(collections) do
    print(i .. ". " .. name)
end

CreateCollection

local success = db:CreateCollection("new_collection")

Collections are created automatically when you insert data. Explicit creation is rarely needed.

DropCollection

-- ⚠️ Permanently deletes collection and all data
local success = db:DropCollection("old_collection")

Collection Stats

local stats = db:Stats("players")
if stats then
    print("Documents:", stats.count)
    print("Size:", stats.size, "bytes")
    print("Avg doc size:", stats.avgObjSize, "bytes")
end

Administrative Commands

Server Info

-- List all databases
local dbs = client:ListDatabases()
print("Total databases:", #dbs)
-- Get collection count
local cols = db:ListCollections()
print("Collections in this database:", #cols)

Cleanup Script

-- Cleanup old test data
local function CleanupTestData()
    -- Drop test collections
    db:DropCollection("test_players")
    db:DropCollection("test_items")
    print("Cleanup complete")
end

Best Practices

  • Backup before dropping databases/collections
  • Use descriptive names for databases and collections
  • Don't create collections manually (auto-created on insert)
  • Use stats to monitor collection sizes