MongoEngine

0.29.3 · active · verified Sat Apr 11

MongoEngine is a Python Object-Document Mapper (ODM) for working with MongoDB. It provides a declarative schema definition, query builder, and features like document relationships, inheritance, and validation, making it easier to interact with MongoDB databases using Python objects. The library is actively maintained, with regular updates to support new PyMongo versions and introduce features, currently at version 0.29.3.

Warnings

Install

Imports

Quickstart

This quickstart demonstrates defining a `Document` model, connecting to a MongoDB instance, creating, saving, finding, updating, and deleting documents. It highlights the use of `StringField` and basic query operations with `User.objects`.

import os
from mongoengine import Document, StringField, connect

# Connect to MongoDB (replace with your connection string)
# Use os.environ.get for secure, flexible credentials
mongo_uri = os.environ.get('MONGO_URI', 'mongodb://localhost:27017/testdb')
connect(alias='default', host=mongo_uri)

class User(Document):
    name = StringField(required=True, max_length=50)
    email = StringField(required=True, unique=True)

    meta = {'collection': 'users'}

# Create a new user
user = User(name='Alice Wonderland', email='alice@example.com')
user.save()
print(f"Saved user: {user.name} with ID: {user.id}")

# Find a user by email
alice = User.objects(email='alice@example.com').first()
if alice:
    print(f"Found user: {alice.name}")

# Update a user
alice.name = 'Alice W.'
alice.save()
print(f"Updated user: {alice.name}")

# Delete a user
alice.delete()
print(f"User '{alice.email}' deleted.")

# Clean up (optional: disconnect)
# disconnect_all() # Or use disconnect('default')

view raw JSON →