For the complete documentation index, see llms.txt. This page is also available as Markdown.

MongoDB (contrib)

Description

MongoDB data sources are MongoDB collections that can be used as a source for feature data. The MongoDBSource points at a MongoDB collection and provides the metadata Feast needs to read historical features from the offline store's collection.

Examples

Defining a MongoDB source:

from feast.infra.offline_stores.contrib.mongodb_offline_store.mongodb import (
    MongoDBSource,
)

driver_stats_source = MongoDBSource(
    name="driver_stats",
    timestamp_field="event_timestamp",
    created_timestamp_column="created_at",
)

The name field becomes the feature_view discriminator stored in every document in the feature_history collection.

Configuration options such as connection_string, database, and collection are inherited from the offline store configuration in feature_store.yaml.

The full set of configuration options is available here.

The MongoDB online store supports Atlas Vector Search, enabling similarity search over feature embeddings stored in MongoDB Atlas. This is powered by the $vectorSearch aggregation stage and requires MongoDB Atlas (or the mongodb/mongodb-atlas-local Docker image for local development).

See PR #6344 for full implementation details.

Configuration

Enable vector search in your feature_store.yaml:

Defining a Feature View with Vector Index

Mark embedding fields with vector_index=True and specify vector_length:

When feast apply (or store.update()) runs with vector_enabled=True, Atlas vector search indexes are automatically created for any field with vector_index=True. Indexes are also automatically dropped when feature views are removed.

Use retrieve_online_documents_v2() to perform similarity search:

Last updated

Was this helpful?