Python 如何有效地为查询多个列建模?

Python 如何有效地为查询多个列建模?,python,cassandra,model,denormalization,Python,Cassandra,Model,Denormalization,我谦虚地来到这里寻求帮助,因为我目前对卡桑德拉模型的某些方面及其含义感到困惑 我知道,理想情况下,我们要筛选的每一列都有一个表。(我遇到一些问题,二级索引没有更新) 让我们举个例子: class宠物(型号): pet_id=columns.UUID(partition_key=True,default=UUID.uuid4) name=columns.Text() age=colmuns.Text() 类PetByName(模型): pet_id=columns.UUID(默认值=UUID.uu

我谦虚地来到这里寻求帮助,因为我目前对卡桑德拉模型的某些方面及其含义感到困惑

我知道,理想情况下,我们要筛选的每一列都有一个表。(我遇到一些问题,二级索引没有更新)

让我们举个例子:

class宠物(型号):
pet_id=columns.UUID(partition_key=True,default=UUID.uuid4)
name=columns.Text()
age=colmuns.Text()
类PetByName(模型):
pet_id=columns.UUID(默认值=UUID.uuid4)
name=columns.Text(partition\u key=True)
age=colmuns.Text()
等级宠物(型号):
pet_id=columns.UUID(默认值=UUID.uuid4)
name=columns.Text()
age=colmuns.Text(partition\u key=True)
如果我想查询一个属性,那么查询很简单,例如:

PetByName.filter(name=“kitty”)
因此,我的第一个问题是:如果我们想要,例如,查询一只名为“kitty”且年龄为“25岁”的宠物,我们该怎么办

现在,我有一个相当麻烦的实现,我执行两个查询,然后在结果上循环,在
pet_id
属性上进行手动交集

但在我看来,应该有一种批处理查询的实现/类型,它将同时运行两个查询,然后基于
intersect
之类的操作符合并结果集

欢迎任何帮助、意见、建议


谢谢你的阅读,祝你度过愉快的一天

如果要按名称或年龄查询,表结构应如下所示:

CREATE TABLE pet_by_name (
     id uuid,
     name text,
     age integer,
     PRIMARY KEY (name, age)
);
在这种情况下,年龄是聚类的关键。此表仅支持按名称或按名称和年龄进行查询