Class that is a wrapper around MongoDB Atlas Vector Search. It is used to store embeddings in MongoDB documents, create a vector search index, and perform K-Nearest Neighbors (KNN) search with an approximate nearest neighbor algorithm.
class MongoDBAtlasVectorSearchConstructor with function overloads for backward compatibility. (embeddings, args) - embeddings are provided by the user (args) - the server handles embeddings
Embeddings interface for generating vector embeddings from text queries, enabling vector-based similarity searches.
Returns a string representing the type of vector store, which subclasses must implement to identify their specific vector storage type.
Method to add documents to the MongoDB collection.
In manual embedding mode: converts documents to vectors using embeddings, then inserts. In auto-embed mode: inserts documents with text only; MongoDB server handles embedding.
Method to add vectors and their corresponding documents to the MongoDB collection.
Creates a VectorStoreRetriever instance with flexible configuration options.
Delete documents from the collection
Return documents selected using the maximal marginal relevance. Maximal marginal relevance optimizes for similarity to the query AND diversity among selected documents. Not supported in auto-embedding mode.
Searches for documents similar to a text query by embedding the query and performing a similarity search on the resulting vector.
Method that performs a similarity search on the vectors stored in the MongoDB collection. It returns a list of documents and their corresponding similarity scores.
Performs similarity search using text-based queries (auto-embedding mode) or vector queries (manual embedding mode). In auto-embed mode, the text query is sent to MongoDB which handles embedding server-side. In manual embedding mode, the text is embedded client-side and passed as a vector.
Static method to fix the precision of the array that ensures that every number in this array is always float when casted to other types. This is needed since MongoDB Atlas Vector Search does not cast integer inside vector search to float automatically. This method shall introduce a hint of error but should be safe to use since introduced error is very small, only applies to integer numbers returned by embeddings, and most embeddings shall not have precision as high as 15 decimal places.
Static method to create an instance of MongoDBAtlasVectorSearch from a list of documents. It first converts the documents to vectors and then adds them to the MongoDB collection.
Supports three calling conventions for backward compatibility:
fromDocuments(docs, embeddings, dbConfig) embeddings are provided by the userfromDocuments(docs, dbConfig) the server handles embeddingsStatic method to create an instance of MongoDBAtlasVectorSearch from a list of texts. It first converts the texts to vectors and then adds them to the MongoDB collection.
Supports two calling conventions for backward compatibility:
fromTexts(texts, metadatas, embeddings, dbConfig) embeddings are provided by the userfromTexts(texts, metadatas, dbConfig) the server handles embeddingsThe name of the serializable. Override to provide an alias or to preserve the serialized module name in minified environments.
Implemented as a static method to support loading logic.