diff --git a/llama_index/vector_stores/supabase.py b/llama_index/vector_stores/supabase.py
index 24ccf369e66a8a81064c79455fe6f45c5449b594..340c14b55357ad5d1267dde5a244405cd6d1a9a2 100644
--- a/llama_index/vector_stores/supabase.py
+++ b/llama_index/vector_stores/supabase.py
@@ -1,5 +1,6 @@
 import logging
 import math
+from collections import defaultdict
 from typing import Any, List
 
 from llama_index.constants import DEFAULT_EMBEDDING_DIM
@@ -74,9 +75,13 @@ class SupabaseVectorStore(VectorStore):
 
     def _to_vecs_filters(self, filters: MetadataFilters) -> Any:
         """Convert llama filters to vecs filters. $eq is the only supported operator."""
-        vecs_filter = {}
+        vecs_filter = defaultdict(list)
+        filter_cond = f"${filters.condition}"
+
         for f in filters.legacy_filters():
-            vecs_filter[f.key] = {"$eq": f.value}
+            sub_filter = {}
+            sub_filter[f.key] = {"$eq": f.value}
+            vecs_filter[filter_cond].append(sub_filter)
         return vecs_filter
 
     def add(self, nodes: List[BaseNode], **add_kwargs: Any) -> List[str]: