通过 stargate API 在 Cassandra 表上使用 $in 运算符

问题描述 投票:0回答:1

我有一个 Cassandra 表,它包含一个名为“marks”的列。它不是主键的一部分。

现在,我希望运行这样的操作: select * from mytable WHEREmarks in (58,88);

如何实现这一目标?我也想通过 Stargate API 运行相同的东西。我尝试禁用分页但不起作用。 SAI和SASI索引似乎没有帮助。这是我尝试运行的 Stargate URL。数据库要求我允许过滤

http://localhost:8082/v2/keyspaces/mykeyspace/mytable?where={"marks":{"$in":[58,88]}}

database cassandra datastax cql stargate-oss
1个回答
0
投票

如果

marks
列不是表主键的一部分,则您不能像在REST API中那样直接在where子句中使用。

相反,您可以使用以下方法创建索引(通过相同的 CQL 控制台屏幕/选项卡):

CREATE CUSTOM INDEX mykeyspace_mytable_marks_idx ON mykeyspace.mytable(marks) USING 'StorageAttachedIndex';

提示:

WHERE
子句可与其他有效搜索词一起使用:
$eq
$in
$lt
$lte
$gt
$gte
$ne
$exists
,如果适用的话。

额外参考:

© www.soinside.com 2019 - 2024. All rights reserved.