Install and import from the "@langchain/mongodb" integration package instead. 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.

Hierarchy

  • VectorStore
    • MongoDBAtlasVectorSearch

Constructors

Properties

FilterType: MongoDBAtlasFilter
embeddings: EmbeddingsInterface

Embeddings interface for generating vector embeddings from text queries, enabling vector-based similarity searches.

Methods

  • Method to add documents to the MongoDB collection. It first converts the documents to vectors using the embeddings and then calls the addVectors method.

    Parameters

    • documents: Document<Record<string, any>>[]

      Documents to be added.

    • Optionaloptions: {
          ids?: string[];
      }
      • Optionalids?: string[]

    Returns Promise<any[]>

    Promise that resolves when the documents have been added.

  • Method to add vectors and their corresponding documents to the MongoDB collection.

    Parameters

    • vectors: number[][]

      Vectors to be added.

    • documents: Document<Record<string, any>>[]

      Corresponding documents to be added.

    • Optionaloptions: {
          ids?: string[];
      }
      • Optionalids?: string[]

    Returns Promise<any[]>

    Promise that resolves when the vectors and documents have been added.

  • Creates a VectorStoreRetriever instance with flexible configuration options.

    Parameters

    • OptionalkOrFields: number | Partial<VectorStoreRetrieverInput<MongoDBAtlasVectorSearch>>

      If a number is provided, it sets the k parameter (number of items to retrieve).

      • If an object is provided, it should contain various configuration options.
    • Optionalfilter: MongoDBAtlasFilter

      Optional filter criteria to limit the items retrieved based on the specified filter type.

    • Optionalcallbacks: Callbacks

      Optional callbacks that may be triggered at specific stages of the retrieval process.

    • Optionaltags: string[]

      Tags to categorize or label the VectorStoreRetriever. Defaults to an empty array if not provided.

    • Optionalmetadata: Record<string, unknown>

      Additional metadata as key-value pairs to add contextual information for the retrieval process.

    • Optionalverbose: boolean

      If true, enables detailed logging for the retrieval process. Defaults to false.

    Returns VectorStoreRetriever<MongoDBAtlasVectorSearch>

    • A configured VectorStoreRetriever instance based on the provided parameters.

    Basic usage with a k value:

    const retriever = myVectorStore.asRetriever(5);
    

    Usage with a configuration object:

    const retriever = myVectorStore.asRetriever({
    k: 10,
    filter: myFilter,
    tags: ['example', 'test'],
    verbose: true,
    searchType: 'mmr',
    searchKwargs: { alpha: 0.5 },
    });
  • Deletes documents from the vector store based on the specified parameters.

    Parameters

    • Optional_params: Record<string, any>

      Flexible key-value pairs defining conditions for document deletion.

    Returns Promise<void>

    A promise that resolves once the deletion is complete.

  • Return documents selected using the maximal marginal relevance. Maximal marginal relevance optimizes for similarity to the query AND diversity among selected documents.

    Parameters

    • query: string

      Text to look up documents similar to.

    • options: MaxMarginalRelevanceSearchOptions<MongoDBAtlasFilter>

    Returns Promise<Document<Record<string, any>>[]>

    • List of documents selected by maximal marginal relevance.
  • Searches for documents similar to a text query by embedding the query and performing a similarity search on the resulting vector.

    Parameters

    • query: string

      Text query for finding similar documents.

    • Optionalk: number

      Number of similar results to return. Defaults to 4.

    • Optionalfilter: MongoDBAtlasFilter

      Optional filter based on FilterType.

    • Optional_callbacks: Callbacks

      Optional callbacks for monitoring search progress

    Returns Promise<DocumentInterface<Record<string, any>>[]>

    A promise resolving to an array of DocumentInterface instances representing similar documents.

  • 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.

    Parameters

    • query: number[]

      Query vector for the similarity search.

    • k: number

      Number of nearest neighbors to return.

    • Optionalfilter: MongoDBAtlasFilter

      Optional filter to be applied.

    Returns Promise<[Document<Record<string, any>>, number][]>

    Promise that resolves to a list of documents and their corresponding similarity scores.

  • Searches for documents similar to a text query by embedding the query, and returns results with similarity scores.

    Parameters

    • query: string

      Text query for finding similar documents.

    • Optionalk: number

      Number of similar results to return. Defaults to 4.

    • Optionalfilter: MongoDBAtlasFilter

      Optional filter based on FilterType.

    • Optional_callbacks: Callbacks

      Optional callbacks for monitoring search progress

    Returns Promise<[DocumentInterface<Record<string, any>>, number][]>

    A promise resolving to an array of tuples, each containing a document and its similarity score.

  • Returns Serialized

  • 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.

    Parameters

    • array: number[]

      Array of number to be fixed.

    Returns number[]

  • 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.

    Parameters

    • docs: Document<Record<string, any>>[]

      List of documents to be converted to vectors.

    • embeddings: EmbeddingsInterface

      Embeddings to be used for conversion.

    • dbConfig: MongoDBAtlasVectorSearchLibArgs & {
          ids?: string[];
      }

      Database configuration for MongoDB Atlas.

    Returns Promise<MongoDBAtlasVectorSearch>

    Promise that resolves to a new instance of MongoDBAtlasVectorSearch.

  • Static 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.

    Parameters

    • texts: string[]

      List of texts to be converted to vectors.

    • metadatas: object | object[]

      Metadata for the texts.

    • embeddings: EmbeddingsInterface

      Embeddings to be used for conversion.

    • dbConfig: MongoDBAtlasVectorSearchLibArgs & {
          ids?: string[];
      }

      Database configuration for MongoDB Atlas.

    Returns Promise<MongoDBAtlasVectorSearch>

    Promise that resolves to a new instance of MongoDBAtlasVectorSearch.