目前,我在DataStax Astra中使用Rest API时遇到问题。
例如数据:
{
"count": 2,
"Members": [
{
"created_at": "",
"intfield": null,
"id": "294",
"role": "BA",
"username": "Join"
},
{
"created_at": "",
"intfield": null,
"id": "180",
"role": "Back",
"username": "Kien Nguyen"
},
{
"created_at": "",
"intfield": null,
"id": "180",
"role": "Back",
"username": "Kien Nguyen"
}]
}
现在,我想得到所有成员与角色回(后端).我尝试使用2个API相同的上述图像API但不成功。也许,我传递了不正确的输入或输入体到2 API。我搜索了论坛,但找不到解决方案。
任何答案都是赞赏的。
多谢了!
2条答案
按热度按时间rwqw0loc1#
您的问题缺少关键细节,包括:
1.表模式,以及
在任何情况下,您发布的结果集似乎都被“篡改”了,因为它报告了
"count": 2
,但列表中有3条记录,其中"id": "180"
重复。因此,我将使用一个示例来说明如何对字段进行筛选。下面是我在DB中创建的表:
它使用以下示例数据填充:
要基于
id = 123
进行过滤,我们将使用以下代码:/api/rest/v2/keyspaces/community/members
where={"id": {"$eq":123}}
REST API调用的结果请求URL(带有URL转义字符)为:
答案是:
如果我尝试使用
role = 'backend'
(或where={"role": {"$eq":"backend"}}
)进行过滤,则此REST API调用:将返回一个错误
400
,因为role
不是分区键,所以我们不能过滤它:解决方法是索引
role
列,这样我们就可以过滤它:现在我们可以使用这个REST API调用来查询它:
获得:
有关详细信息和更多示例,请参见Developing with the Astra DB REST API。干杯!
xkftehaa2#
如果您直接处理JSON类型的数据/有效负载,则可以利用Document API而不是REST API。
下面是如何使用JSON/Document API实现这一点,
其中,我假设
myworld
作为名称空间,members
作为集合名称。如果您使用实际的表模式更新了原来的问题,并希望使用其他API获得其他指导,我将相应地更新我的答案。干杯。
奖励:您可以在这里找到Postman集合资源,其中包含所有可用API的示例,该资源将随时更新最新信息。