在 Chroma 中,$in / $nin 用来判断指定的字段在数组参数中包含/不包含,强调的是查询条件是数组,数据库中字段的值是否包含在条件数组中。
类似 SQL 语句中的 in 和 not in 语法。例如:
col.get(where={"year": {"$in": [2020, 2024]}})查询 year 是 2020 或 2024 年的记录。
示例:
print("\n--- 属于 2020 和 2024 年 ---")
show(col.get(where={"year": {"$in": [2020, 2024]}}))
print("\n--- 不属于 2020 和 2024 年 ---")
show(col.get(where={"year": {"$nin": [2020, 2024]}}))运行示例,输出结果:
--- year 大于 2022 ---
id=r1, document=退款流程 refund, metadata={'cat': '售后', 'tags': ['a', 'b'], 'year': 2020, 'is_public': True, 'score': 0.9}
id=r3, document=物流 logistics, metadata={'cat': '物流', 'is_public': False, 'score': 0.7, 'year': 2024, 'tags': ['a', 'd']}
id=r4, document=退货政策, metadata={'year': 2024, 'is_public': False, 'cat': '售后', 'score': 0.3, 'tags': ['b', 'd']}
--- year 大于 2022 ---
id=r2, document=发票 invoice, metadata={'cat': '财务', 'score': 0.5, 'is_public': False, 'tags': ['c'], 'year': 2022}注意:$in 的列表元素类型要跟字段类型一致。