首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Grandstack使用cypher自定义查询来查询neo4j的关系?

如何使用Grandstack使用cypher自定义查询来查询neo4j的关系?
EN

Stack Overflow用户
提问于 2021-10-29 21:35:49
回答 1查看 81关注 0票数 0

我有这些模型:

代码语言:javascript
复制
type User {
  userId: ID!
  mail: String!
  password: String! @private
  meals: [Meal!] @relationship(type: "IN_MEALS", direction: OUT)
}

type Meal {
  name: String!
  createdBy: User! @relationship(type: "IN_MEALS", direction: IN)
}

关系是在neo4j中建立的,当我查询所有用户时,但是当我对自定义用户使用这个自定义查询时,meals被定义为null我不知道为什么

代码语言:javascript
复制
type Query {
  currentUser: User
    @cypher(
      statement: """
      MATCH (u:User {userId: $auth.jwt.userId})
      OPTIONAL MATCH (u)-[r:IN_MEALS]->(m:Meal)
      RETURN u,r,m  
      """
    )
}

当我在graphql中执行此查询时

代码语言:javascript
复制
{
  currentUser {
    userId
    mail
    meals {
      name
    }
  }
}

它告诉我饭菜是无效的,但它们不是...

代码语言:javascript
复制
{
  "data": {
    "currentUser": {
      "userId": "02e7b50a-1a51-4d3b-b26b-57ed08d89c5a",
      "mail": "mak@gmail.com",
      "meals": null
    }
  }
}

通过查看我的neo4j数据库,我知道了这一点,这也是因为当我查询所有用户时

代码语言:javascript
复制
{
  users {
    mail
    meals {
      name
    }
  }
}

我可以在餐饮中看到这些价值:

代码语言:javascript
复制
{
  "data": {
    "users": [
      {
        "mail": "mak@gmail.com",
        "meals": [
          {
            "name": "frites"
          },
          {
            "name": "mcdo"
          },
          {
            "name": "sushi"
          }
        ]
      }
    ]
  }
}
EN

回答 1

Stack Overflow用户

发布于 2021-10-30 12:02:21

据我所知,你只需要提供toplevel节点,然后宏堆栈将处理获取额外的关系等。不幸的是,documentation似乎不是那么清楚。尝试使用:

代码语言:javascript
复制
type Query {
  currentUser: User
    @cypher(
      statement: """
      MATCH (u:User {userId: $auth.jwt.userId})
      RETURN u  
      """
    )
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69775011

复制
相关文章

相似问题

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