langchain-mongodb 패키지를 사용하여 LangChain에서 MongoDB Atlas Vector Search를 사용하는 방법을 다룹니다.
MongoDB Atlas는 AWS, Azure, GCP에서 제공되는 완전 관리형 클라우드 데이터베이스입니다. MongoDB 문서 데이터에 대해 기본 Vector Search, 전체 텍스트 검색(BM25), 하이브리드 검색을 지원합니다.
MongoDB Atlas Vector Search는 임베딩을 MongoDB 문서에 저장하고, vector search 인덱스를 생성하며, 근사 최근접 이웃 알고리즘(Hierarchical Navigable Small Worlds)으로 KNN 검색을 수행할 수 있게 해줍니다. $vectorSearch MQL Stage를 사용합니다.
Setup
*MongoDB 버전 6.0.11, 7.0.2 이상(출시 후보 포함)으로 실행되는 Atlas 클러스터.MongoDB Atlas를 사용하려면 먼저 클러스터를 배포해야 합니다. 원하는 클라우드에서 사용할 수 있는 Forever-Free 티어 클러스터가 있습니다. 시작하려면 여기 Atlas의 quick start로 이동하세요. 이 통합을 사용하려면
langchain-mongodb와 pymongo를 설치해야 합니다.
Credentials
이 노트북을 위해 MongoDB 클러스터 URI를 확인해야 합니다. 클러스터 URI 찾기에 대한 정보는 이 가이드를 참고하세요.Initialization
vector_store.create_vector_search_index 명령 대신, 다음 인덱스 정의를 사용하여 Atlas UI에서 vector search 인덱스를 생성할 수도 있습니다:
Manage vector store
vector store를 생성한 후에는 다양한 항목을 추가하고 삭제하여 상호작용할 수 있습니다.Add items to vector store
add_documents function을 사용하여 vector store에 항목을 추가할 수 있습니다.
Delete items from vector store
Query vector store
vector store가 생성되고 관련 문서가 추가되면, 체인이나 에이전트 실행 중에 이를 쿼리하고 싶을 것입니다.Query directly
Similarity search
간단한 similarity search는 다음과 같이 수행할 수 있습니다:Similarity search with score
score와 함께 검색할 수도 있습니다:Pre-filtering with Similarity Search
Atlas Vector Search는 필터링을 위해 MQL Operators를 사용한 사전 필터링을 지원합니다. 아래는 위에서 로드한 동일한 데이터에 대한 인덱스와 쿼리 예시로, “page” 필드에 대한 메타데이터 필터링을 할 수 있습니다. 정의된 필터로 기존 인덱스를 업데이트하고 vector search에서 사전 필터링을 수행할 수 있습니다. 사전 필터링을 활성화하려면 인덱스 정의를 업데이트하여 filter 필드를 포함해야 합니다. 이 예시에서는source 필드를 filter 필드로 사용합니다.
이는 MongoDBAtlasVectorSearch.create_vector_search_index method를 사용해 프로그래밍 방식으로 수행할 수 있습니다.
Other search methods
MMR search나 벡터로 검색하는 방식 등 이 노트북에서 다루지 않은 다양한 검색 방법이 있습니다.MongoDBAtlasVectorStore에서 제공되는 검색 기능의 전체 목록은 API reference를 확인하세요.
Query by turning into retriever
체인에서 더 쉽게 사용할 수 있도록 vector store를 retriever로 변환할 수도 있습니다. 다음은 vector store를 retriever로 변환한 뒤, 간단한 query와 filter로 retriever를 호출하는 방법입니다.Usage for retrieval-augmented generation
retrieval-augmented generation (RAG)에 이 vector store를 사용하는 방법에 대한 가이드는 다음 섹션을 참고하세요:Other Notes
- 더 많은 문서는 MongoDB’s LangChain Docs 사이트에서 확인할 수 있습니다
- 이 기능은 Generally Available 상태이며 운영 환경 배포에 적합합니다.
- langchain 버전 0.0.305(release notes)는 MongoDB Atlas 6.0.11 및 7.0.2에서 제공되는 $vectorSearch MQL stage 지원을 도입했습니다. 이전 버전의 MongoDB Atlas를 사용하는 사용자는 LangChain 버전을
<=0.0.304로 고정해야 합니다
API reference
MongoDBAtlasVectorSearch의 모든 기능과 구성에 대한 자세한 문서는 API reference에서 확인하세요: python.langchain.com/api_reference/mongodb/index.html
Connect these docs programmatically to Claude, VSCode, and more via MCP for real-time answers.