Как запросить документ по значениям в атрибуте массива?
Документ выглядит так:
{
"checkpointIds": [
"1155adc1-cb50-4124-9b5f-7667693a34c0" ,
"1155adc1-cb50-4124-9b5f-7667693a34c1"
] ,
"id": "1a55dc34-bd30-4915-ada7-ce4972d5df4f"
}
я хочу запросить документы, которые имеют определенные значения внутри атрибута, который является массивом, я попробовал ниже, но это не работает, он просто возвращает все результаты в коллекции
filtered = list(r.table(collection).filter(
lambda doc: \
(doc['id'] == _filters.get('id')).default(False) | \
(doc['checkpointIds'].set_intersection(_filters.get('checkpointIds'))).default(False)
).run(self.rdb_conn))
1 ответ
Вот:
filtered = list(r.table(collection).filter(
lambda doc: \
(doc['id'] == _filters.get('id')).default(False) | \
(doc['checkpointIds'].set_intersection(_filters.get('checkpointIds')).is_empty().not_()).default(False)
).run(self.rdb_conn))