[英]Filter on array value in ArangoDB
我有一个这样的文件:
{ "baths": 2, "beds": 3, "id": "3225C", "addrs": [
{
"line2": "",
"line3": "",
"state": "OH",
"zip": "67845",
"line1": "3225 ABC AVE",
"city": "CLEVELAND"
},
{
"line2": "",
"line3": "",
"state": "FL",
"zip": "32818",
"line1": "2438 DEF AVE",
"city": "ORLANDO"
} ], "homeAddress": {
"line2": "",
"line3": "",
"state": "FL",
"zip": "32818",
"line1": "1234 CHICOTA AVE",
"city": "ORLANDO" }, "rentingAddresses": {
"ownsObjects": true,
"count": 0,
"arrayManager": {},
"items": [] }, "mailAddress": [
"4561 RAYCO AVE",
"",
"",
"ORLANDO",
"FL",
"32818" ] }
我试图找出哪些客户端有一个addrs
,其中状态为“OH”。 我的aql查询是:
for client in clients.addrs
filter client.state == "OH"
return client
但我一直得到[1563] list expected
。 还有其他方法可以使用数组吗?
你可以这样做:
FOR client IN clients
FILTER 'OH' IN client.addrs[*].state
RETURN client
这应该返回“addrs”属性中至少有一个元素的所有客户端“state”==“OH”
首先,您必须使用以下过滤器选择该集合中的文档:
FOR doc IN clients
FILTER doc.id == "3225C"
FOR d IN doc.addrs
FILTER d.state == "OH"
RETURN d
这将返回状态==“OH”的addrs
对象。 如果你想获得完整的文档,只需用RETURN doc
替换RETURN d
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.