我在cassandra
中使用map数据类型来存储像
{
'email':'example@example.com',
'Id':2
}
如何搜索email='example@example.com' OR Id = 2
答案 0 :(得分:0)
我认为这不可能直接进行。对于初学者来说,CQL中没有OR
运算符。您必须通过合并两个查询的结果来执行OR客户端。
其次,要进行此类查询,您需要一个二级索引。但是二级索引不允许您(还)索引关键字和地图的值。来自CQL 3.1文档:
地图的键和值的索引不能共存。
因此,据我所见,您可以获得的最接近的查询是
the_map CONTAINS ('example@example.com')
和另一个
the_map CONTAINS ('2')
只要保证email
和ID
的值不能重叠,两个查询的合并结果就可以为您提供所需的结果。但是没有办法确保'2'实际上是键ID
或'example@example.com'的值是键email
的值。