Component
Python SDK — mem0/vector_stores/pinecone.py _create_filter
Summary
Mem0 metadata filtering documents {"key": "*"} as wildcard / field-exists. Pinecone's _create_filter always wraps scalars as {"$eq": value}, so "*" becomes a literal equality match for the string *, which never matches real payload values.
Other stores (pgvector, chroma, milvus, opensearch, …) special-case "*".
Repro
# unit-level
from mem0.vector_stores.pinecone import PineconeDB
# after constructing (or call _create_filter on an instance):
# filters={"user_id": "*"} → {"user_id": {"$eq": "*"}} # wrong
# expected field-exists, e.g. {"user_id": {"$exists": True}}
Expected
"*" → Pinecone exists filter ($exists: true), consistent with docs / other providers (see #6539 family).
Actual
Literal $eq on "*".
Component
Python SDK —
mem0/vector_stores/pinecone.py_create_filterSummary
Mem0 metadata filtering documents
{"key": "*"}as wildcard / field-exists. Pinecone's_create_filteralways wraps scalars as{"$eq": value}, so"*"becomes a literal equality match for the string*, which never matches real payload values.Other stores (pgvector, chroma, milvus, opensearch, …) special-case
"*".Repro
Expected
"*"→ Pinecone exists filter ($exists: true), consistent with docs / other providers (see #6539 family).Actual
Literal
$eqon"*".