From 98175860adf5f848d3a8fa1a850573ec250bba6d Mon Sep 17 00:00:00 2001 From: Pere Pasamonte Date: Mon, 29 Jul 2024 17:32:05 +0200 Subject: [PATCH] community: Fix AWS DocumentDB similarity_search when filter is None (#24777) **Description** Fixes DocumentDBVectorSearch similarity_search when no filter is used; it defaults to None but $match does not accept None, so changed default to empty {} before pipeline is created. **Issue** AWS DocumentDB similarity search does not work when no filter is used. Error msg: "the match filter must be an expression in an object" #24775 **Dependencies** No dependencies **Twitter handle** https://x.com/perepasamonte --------- Co-authored-by: Chester Curme --- libs/community/langchain_community/vectorstores/documentdb.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libs/community/langchain_community/vectorstores/documentdb.py b/libs/community/langchain_community/vectorstores/documentdb.py index 730c517a157..d6a96872838 100644 --- a/libs/community/langchain_community/vectorstores/documentdb.py +++ b/libs/community/langchain_community/vectorstores/documentdb.py @@ -327,6 +327,10 @@ class DocumentDBVectorSearch(VectorStore): Returns: A list of documents closest to the query vector """ + # $match can't be null, so intializes to {} when None to avoid + # "the match filter must be an expression in an object" + if not filter: + filter = {} pipeline: List[dict[str, Any]] = [ {"$match": filter}, {