Firestore位置参数过滤警告及filter关键字参数使用方法
解决Firestore
query.where() 位置参数警告问题 当使用Firestore的query.where(field_path, op_string, value)方法时,会弹出以下警告:
UserWarning: Detected filter using positional arguments. Prefer using the 'filter' keyword argument instead.
目前官方文档暂未提供filter关键字参数的使用示例,相关问题仍在跟进处理中。
正确用法示例
首先引入必要的类:
from google.cloud.firestore import CollectionReference from google.cloud.firestore_v1.base_query import FieldFilter, BaseCompositeFilter
多条件AND查询
# 定义条件列表,每个条件格式为[字段名, 操作符, 值] conditions = [["username", "==", "johndoe"], ["account_status", "==", "active"]] # 初始化集合引用 query = CollectionReference("user_profiles") # 使用BaseCompositeFilter组合多条件,这里采用AND逻辑 query = query.where(filter=BaseCompositeFilter('AND', [FieldFilter(*cond) for cond in conditions]))
单条件查询
如果仅需单个过滤条件,直接使用FieldFilter即可:
query = query.where(filter=FieldFilter("age", ">", 25))
操作符说明
FieldFilter支持的操作符包括==、!=、>、<、>=、<=等,可参考Firestore官方查询操作符说明;此外还支持OPERATOR_UNSPECIFIED,但其具体作用暂不明确。
内容的提问来源于stack exchange,提问作者syldman
相关产品推荐
相关产品推荐

