Files
bot/skills/hanzo-documentdb/SKILL.md
zeekay e5aac7b8a2 feat(skills): add complete Hanzo cloud service repertoire (20 new skills)
Full coverage of Hanzo infrastructure: MCP (260+ tools), CLI, LLM
Gateway, Chat, Network, Node, Web3, Consensus, ACI, REPL, Vector DB,
KV Store, PubSub, DocumentDB, Storage, Studio, Insights, Commerce,
Search, and Telemetry. Updated PaaS skill to use hanzo-tools-paas SDK.
2026-02-27 00:09:47 -08:00

2.6 KiB

name, description, metadata
name description metadata
hanzo-documentdb MongoDB-compatible document database with Hanzo DocumentDB (FerretDB). Store, query, and aggregate JSON documents with ACID guarantees.
bot
requires install
bins
python3
id kind package label
pip pip pymongo Install PyMongo (pip)

Hanzo DocumentDB — Document Database

pip install pymongo

MongoDB-compatible document database built on PostgreSQL via FerretDB. Full MongoDB wire protocol with ACID compliance.

Quick Start

from pymongo import MongoClient

client = MongoClient("mongodb://user:password@localhost:27017/")
db = client["myapp"]
collection = db["users"]

# Insert
result = collection.insert_one({"name": "Alice", "email": "[email protected]", "role": "admin"})
print(f"Inserted: {result.inserted_id}")

# Find
user = collection.find_one({"email": "[email protected]"})
print(user)

# Query
admins = collection.find({"role": "admin"}).sort("name", 1).limit(10)
for admin in admins:
    print(admin["name"])

Async Client

from motor.motor_asyncio import AsyncIOMotorClient

client = AsyncIOMotorClient("mongodb://user:password@localhost:27017/")
db = client["myapp"]

result = await db.users.insert_one({"name": "Bob"})
user = await db.users.find_one({"name": "Bob"})

Aggregation Pipelines

pipeline = [
    {"$match": {"status": "active"}},
    {"$group": {"_id": "$department", "count": {"$sum": 1}}},
    {"$sort": {"count": -1}}
]
results = collection.aggregate(pipeline)
for doc in results:
    print(f"{doc['_id']}: {doc['count']}")

Bulk Operations

from pymongo import InsertOne, UpdateOne, DeleteOne

operations = [
    InsertOne({"name": "Carol"}),
    UpdateOne({"name": "Alice"}, {"$set": {"role": "superadmin"}}),
    DeleteOne({"name": "old-user"})
]
result = collection.bulk_write(operations)

Indexes

# Create index for fast queries
collection.create_index("email", unique=True)
collection.create_index([("name", 1), ("created_at", -1)])

# Text search index
collection.create_index([("title", "text"), ("body", "text")])
results = collection.find({"$text": {"$search": "hanzo agent"}})

Transactions

with client.start_session() as session:
    with session.start_transaction():
        db.accounts.update_one({"_id": "A"}, {"$inc": {"balance": -100}}, session=session)
        db.accounts.update_one({"_id": "B"}, {"$inc": {"balance": 100}}, session=session)

Port

  • Default: 27017 (MongoDB wire protocol)

Environment Variables

MONGO_URI=mongodb://user:password@localhost:27017/database