首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jsoniq - empty()函数,用于确定属性是否存在

jsoniq - empty()函数,用于确定属性是否存在
EN

Stack Overflow用户
提问于 2017-10-31 08:58:10
回答 1查看 170关注 0票数 1

我使用try.zorba.io我的代码(简化)是:

代码语言:javascript
复制
        jsoniq version "1.0";
        let $tweets :=

    [
    {
    "id" : 1,
        "user" : {
        "id" : 1111,
        "screen_name" : "Bobby"
      }
    }, 
    {
      "id" : 2,
      "user" : {
        "id" : 1111,
        "screen_name" : "Bobby"
      }
    }, 
    {
      "id" : 3,
      "user" : {
        "id" : 2222,
        "screen_name" : "Greg"
      }
    }, 
    {
      "id" : 4,
      "user" : {
        "id" : 3333,
        "screen_name" : "Tom"
      }
    }
    ]

let $users :=
[
{
  "screen_name" : "Julie",
  "id" : 4444
}, {
  "screen_name" : "Tom",
  "id" : 3333
}, {
  "screen_name" : "Greg",
  "id" : 2222
}, {
  "screen_name" : "Barb",
  "id" : 5555
}, {
  "screen_name" : "Bobby",
  "id" : 1111
}, {
  "screen_name" : "Yall",
  "id" : 6666
}
]

我正在尝试找出所有没有任何$tweets$users"screen_name"。我想我必须以某种方式使用empty(s)函数,但我不知道如何使用。这是我到目前为止所做的努力(但它不起作用,我的结果是空的):

代码语言:javascript
复制
for $t in members($tweets)
for $u in members($users)
for $r in members($users)
where $u."id" eq $t."user"."id"
where  empty($r)
return $u."screen_name"

有什么建议吗?

EN

回答 1

Stack Overflow用户

发布于 2017-10-31 20:46:57

您需要一个嵌套循环来计算每个用户的tweet,并将它们与一个变量绑定。一旦这些tweet存储在一个变量中,您就可以使用empty函数进行过滤,如下所示(在try.zorba.io上进行了测试):

代码语言:javascript
复制
...
for $u in members($users)
let $tweets :=
  for $t in members($tweets)
  where $u."id" eq $t."user"."id"
  return $t
where  empty($tweets)
return $u."screen_name"

请注意,try.zorba.io目前运行在Zorba2.9上,这是一个较旧的版本。稳定、成熟的JSONiq版本附带了最新的Zorba3.0,您可以下载。

使用Zorba 3.0,可以像这样改进查询:

代码语言:javascript
复制
...
let $tweeting-user-ids := distinct-values($tweets[].user.id)
for $user in $users[]
where not $user.id = $tweeting-user-ids
return $user.screen_name
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47026389

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档