{"id":2561,"library":"langchain-mongodb","title":"MongoDB integration for LangChain","description":"This package provides integrations for MongoDB products within the LangChain ecosystem, including VectorStore, DocumentLoader, and ChatMessageHistory capabilities. It is currently at version 0.11.0 and is actively maintained, receiving frequent updates to align with LangChain's evolving architecture and MongoDB's features.","status":"active","version":"0.11.0","language":"en","source_language":"en","source_url":"https://github.com/langchain-ai/langchain-mongodb","tags":["langchain","mongodb","vector-store","document-loader","chat-message-history","database","ai","llm"],"install":[{"cmd":"pip install langchain-mongodb pymongo","lang":"bash","label":"Install core package and PyMongo"},{"cmd":"pip install langchain-mongodb pymongo langchain-openai","lang":"bash","label":"Install with OpenAI for embeddings"}],"dependencies":[{"reason":"Core LangChain functionalities","package":"langchain-core","optional":false},{"reason":"Official MongoDB driver for Python","package":"pymongo","optional":false}],"imports":[{"note":"MongoDB vector store integration moved to a dedicated package since LangChain's ecosystem split.","wrong":"from langchain.vectorstores import MongoDBAtlasVectorSearch","symbol":"MongoDBAtlasVectorSearch","correct":"from langchain_mongodb.vectorstores import MongoDBAtlasVectorSearch"},{"note":"Document loaders specific to MongoDB are now part of the langchain-mongodb package.","wrong":"from langchain_community.document_loaders import MongoDBLoader","symbol":"MongoDBLoader","correct":"from langchain_mongodb import MongoDBLoader"},{"note":"Chat message history integrations are within the dedicated langchain-mongodb package.","wrong":"from langchain_community.chat_message_histories import MongoDBChatMessageHistory","symbol":"MongoDBChatMessageHistory","correct":"from langchain_mongodb.chat_message_histories import MongoDBChatMessageHistory"}],"quickstart":{"code":"import os\nfrom pymongo import MongoClient\nfrom langchain_mongodb.vectorstores import MongoDBAtlasVectorSearch\n\n# NOTE: Replace DummyEmbeddings with a real embedding model (e.g., OpenAIEmbeddings)\n# For a runnable example without extra API keys, we use a placeholder.\nclass DummyEmbeddings:\n    def embed_documents(self, texts):\n        # Return a list of fixed-size vectors for each text\n        return [[0.1] * 1536 for _ in texts]\n    def embed_query(self, text):\n        # Return a fixed-size vector for a single query\n        return [0.1] * 1536\n\n# Environment variables for MongoDB connection\nMONGODB_ATLAS_CLUSTER_URI = os.environ.get(\n    \"MONGODB_ATLAS_CLUSTER_URI\", \"mongodb://localhost:27017/\"\n)\nMONGODB_DATABASE = os.environ.get(\"MONGODB_DATABASE\", \"langchain_db\")\nMONGODB_COLLECTION = os.environ.get(\"MONGODB_COLLECTION\", \"vector_collection\")\n\n# Initialize MongoDB client and collection\nclient = MongoClient(MONGODB_ATLAS_CLUSTER_URI)\ncollection = client[MONGODB_DATABASE][MONGODB_COLLECTION]\n\n# Initialize embedding model (replace DummyEmbeddings with e.g., OpenAIEmbeddings)\n# embeddings = OpenAIEmbeddings(openai_api_key=os.environ.get(\"OPENAI_API_KEY\"))\nembeddings = DummyEmbeddings()\n\n# Initialize MongoDB Atlas Vector Search\n# Ensure 'default' index exists in MongoDB Atlas on the specified collection\nvector_search = MongoDBAtlasVectorSearch(\n    collection=collection,\n    embedding=embeddings,\n    index_name=\"default\", # The name of your Atlas Search Vector Index\n)\n\n# Add documents to the vector store\ndocs = [\n    \"The quick brown fox jumps over the lazy dog.\",\n    \"A group of cats is called a clowder.\",\n    \"Python is a high-level, interpreted programming language.\"\n]\nvector_search.add_texts(docs)\nprint(f\"Added {len(docs)} documents to MongoDB Atlas Vector Search.\")\n\n# Perform a similarity search\nquery = \"animals running\"\nresults = vector_search.similarity_search(query, k=1)\nprint(f\"Similarity search results for '{query}':\")\nfor res in results:\n    print(f\"- {res.page_content}\")\n\n# Clean up (optional) - remove added documents\n# collection.delete_many({\"text\": {\"$in\": docs}})\n# print(\"Cleaned up documents.\")\n","lang":"python","description":"This quickstart demonstrates how to use `MongoDBAtlasVectorSearch` to store and query documents. It connects to a MongoDB cluster (defaults to local if env vars aren't set), initializes a vector store with a placeholder embedding model, adds documents, and performs a similarity search. Remember to replace `DummyEmbeddings` with a real embedding model (e.g., `OpenAIEmbeddings`) for production use and create a vector search index in MongoDB Atlas."},"warnings":[{"fix":"Ensure `langchain-mongodb` is installed: `pip install langchain-mongodb`. Update all imports to use `from langchain_mongodb...` instead of `from langchain...` or `from langchain_community...`.","message":"LangChain's ecosystem split led to many integrations, including MongoDB, moving from `langchain` or `langchain-community` into dedicated packages like `langchain-mongodb`. Older import paths are deprecated or will result in `ModuleNotFoundError`.","severity":"breaking","affected_versions":"LangChain versions >= 0.1.0 (with `langchain-core`), langchain-mongodb >= 0.1.0"},{"fix":"Create a vector search index in the MongoDB Atlas UI for your target collection. Ensure the `index_name` parameter in `MongoDBAtlasVectorSearch` matches the name of your Atlas Vector Search index. Configure the index to use the correct embedding field and dimensions.","message":"`MongoDBAtlasVectorSearch` requires a pre-configured Atlas Search Index (type 'Vector Search') on your MongoDB collection. If the `index_name` specified in your code does not exist or is misconfigured, operations will fail.","severity":"gotcha","affected_versions":"All versions using `MongoDBAtlasVectorSearch`"},{"fix":"Pass a valid embedding model instance (e.g., `OpenAIEmbeddings(api_key=\"...\")`, `HuggingFaceEmbeddings()`) to the `embedding` parameter of the `MongoDBAtlasVectorSearch` constructor.","message":"All vector store operations (adding documents, performing similarity searches) require an instantiated embedding model. Forgetting to provide one or providing an incorrectly configured model will lead to errors.","severity":"gotcha","affected_versions":"All versions"},{"fix":"Verify your connection string directly from the MongoDB Atlas UI. Ensure it includes the correct protocol, host, and authentication credentials. For local setups, `mongodb://localhost:27017/` is common.","message":"The MongoDB connection URI (`MONGODB_ATLAS_CLUSTER_URI`) must be correctly formatted, especially for Atlas clusters (e.g., `mongodb+srv://user:pass@cluster-name.mongodb.net/`). Incorrect protocols or missing credentials will result in connection failures.","severity":"gotcha","affected_versions":"All versions"}],"env_vars":null,"last_verified":"2026-04-10T00:00:00.000Z","next_check":"2026-07-09T00:00:00.000Z"}