Как запросить документ по значениям в атрибуте массива?

Документ выглядит так:

{
"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))
Другие вопросы по тегам