首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sanity.io GROQ:检索在对象数组中定义了键的文档

Sanity.io GROQ:检索在对象数组中定义了键的文档
EN

Stack Overflow用户
提问于 2022-03-30 20:42:48
回答 1查看 368关注 0票数 1

我有像这样的文件

代码语言:javascript
复制
{
  "_type": "celeb",
  "name": "foo",
  "facts: [
    {a: 1, topics: {_ref: 'asd', _type: 'reference'}},
    {a: 2},
    {a: 3, topics: {_ref: 'dfg', _type: 'reference'}}
  ]
}

并不是所有的文档都有具有factstopics。有些人有facts,但没有topics。我在试着找回那些有它的。我尝试了以下GROQ查询

代码语言:javascript
复制
*[_type == 'celeb' && defined(facts[*].topics)]

上面的查询的问题是,它不区分具有包含celebs键的对象的facts和没有包含topics键的对象的factsceleb

如何使查询只返回具有定义了celeb对象的factsfacts文档?

EN

回答 1

Stack Overflow用户

发布于 2022-03-30 22:17:12

defined(foo)只是foo != null的缩写,所以这是行不通的。解决办法是计算:

代码语言:javascript
复制
*[_type == 'celeb' && count(facts[].topics) > 0]
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71683918

复制
相关文章

相似问题

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