Skip to main content
Version: Main branch

superduper_mongodb

Superduper MongoDB is a Python library that provides a high-level API for working with MongoDB. It is built on top of pymongo and provides a more user-friendly interface for working with MongoDB.

In general the MongoDB query API works exactly as per pymongo, with the exception that:

  • inputs are wrapped in Document
  • additional support for vector-search is provided
  • queries are executed lazily

Installation​

pip install superduper_mongodb

API​

ClassDescription
superduper_mongodb.data_backend.MongoDataBackendData backend for MongoDB.
superduper_mongodb.metadata.MongoMetaDataStoreMetadata store for MongoDB.
superduper_mongodb.query.MongoQueryA query class for MongoDB.
superduper_mongodb.query.BulkOpA bulk operation for MongoDB.
superduper_mongodb.artifacts.MongoArtifactStoreArtifact store for MongoDB.

Connection examples​

Connect to mongomock​

from superduper import superduper
db = superduper('mongomock://test')

Connect to MongoDB​

from superduper import superduper
db = superduper('mongodb://localhost:27017/documents')

Connect to MongoDB Atlas​

from superduper import superduper
db = superduper('mongodb+srv://<username>:<password>@<cluster-url>/<database>')

Query examples​

Inserts​

db['my-collection'].insert_many([{'my-field': ..., ...}
for _ in range(20)
]).execute()

Updates​

db['my-collection'].update_many(
{'<my>': '<filter>'},
{'$set': ...},
).execute()

Selects​

db['my-collection'].find({}, {'_id': 1}).limit(10).execute()

Vector-searches may be integrated with .find.

db['my-collection'].like({'img': <my_image>}, vector_index='my-index-name').find({}, {'img': 1}).execute()

Read more about vector-search here.

Deletes​

db['my-collection'].delete_many({}).execute()