Skip to main content
Use MongoDB Atlas as your vector database for storing and retrieving document embeddings.

Installation

Install the required packages:
pip install hypertic[mongodb]

Setup

Set your MongoDB connection string as an environment variable:
export MONGODB_URI=mongodb+srv://...
Create a MongoDB Atlas instance with an embedder:
import os
from hypertic.vectordb import MongoDBAtlas
from hypertic.embedders import OpenAIEmbedder

# Create embedder
embedder = OpenAIEmbedder(
    api_key=os.getenv("OPENAI_API_KEY"),
    model="text-embedding-3-small"
)

# Create MongoDB Atlas instance
vector_db = MongoDBAtlas(
    collection="my_collection",
    embedder=embedder,
    connection_string="mongodb+srv://user:[email protected]/?appName=app",
    database_name="vectordb"
)

Usage

MongoDB Atlas supports both sync and async operations:
# Add documents
vector_db.add(
    files=["data/index.pdf", "data/sample.txt"],
    metadatas=[
        {"source": "invoice.pdf", "type": "invoice"},
        {"source": "sample.txt", "type": "text"}
    ]
)

# Create retriever
retriever = vector_db.as_retriever(k=3)

# Search documents
docs = retriever.search("invoice payment")
print(docs)

Configuration Options

  • collection - Name of the MongoDB collection
  • embedder - Embedder instance for generating embeddings
  • connection_string - MongoDB Atlas connection string
  • database_name - Name of the MongoDB database
For more details, see the MongoDB Atlas documentation.