MongoDB (contrib)

Description

MongoDB data sources are MongoDBarrow-up-right 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 herearrow-up-right.

The MongoDB online store supports Atlas Vector Searcharrow-up-right, 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 #6344arrow-up-right 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?