首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Neo4j-graphql-js --有没有办法检查可选参数是否存在?

Neo4j-graphql-js --有没有办法检查可选参数是否存在?
EN

Stack Overflow用户
提问于 2021-04-17 02:21:41
回答 1查看 28关注 0票数 0

这是一个简化的示例,但我正在尝试对我的模式进行更改,使其向后兼容该应用程序的旧版本。我正在添加一个externalUrls参数:

代码语言:javascript
复制
CreatePost(body: String!, userId: ID!, mentions: [String!], linkUrl: String, externalUrls: [String]): Post @isAuthenticated
    @cypher(
      statement: """
        ...
        UNWIND $externalUrls as urlText
        CREATE (link:Link {
            id: apoc.create.uuid(),
            path: urlText,
            createdAt: datetime(),
            updatedAt: datetime()
        })
        CREATE (link)-[:LINKS_TO {createdAt: datetime()}]->(post)
        RETURN post
    """)

在此之前有一些密码,但我的想法是我只想运行这段代码:

代码语言:javascript
复制
UNWIND $externalUrls as urlText
CREATE (link:Link {
    id: apoc.create.uuid(), 
    path: urlText,
    createdAt: datetime(),
    updatedAt: datetime()        
})
CREATE (link)-[:LINKS_TO {createdAt: datetime()}]->(post)

如果$externalUrls存在/不为null。如果较旧版本的应用程序调用

代码语言:javascript
复制
mutation CreatePost($body: String!, $userId: ID!, $mentions: [String!], $linkUrl: String) {
  CreatePost(body: $body, userId: $userId, mentions: $mentions, linkUrl: $linkUrl) {
    id
  }
}

$externalUrls: [String]甚至不能被传入的情况下,展开行中断。我已经尝试使用CALL apoc.do.whenFOREACH来检查EXISTS($externalUrls)NOT $externalUrls IS NULL是否都失败了,而这两个都没有作为参数传入。有没有其他方法可以检查参数是否有值或是否存在?我的感觉是,我总是会遇到Expected parameter(s): externalUrls,但我希望找到一种方法来避免这种情况。

EN

回答 1

Stack Overflow用户

发布于 2021-04-17 08:58:04

如果在查询中使用参数,则该参数是必需的。

模仿可选参数的最好方法是传递一个map参数,并使用map中的条目。

例如,如果您传入:

$myParams ={外部null:空,某个其他条目:1,等等:true}

然后,您可以引用:$myParams.externalUrls,或者对它使用WHERE子句或CASE,以便对它执行一些操作,以确定它是否为null。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67130345

复制
相关文章

相似问题

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