neo4j - 如何使用 Grandstack 使用带有密码的自定义查询来查询 Neo4j 的关系?
问题描述
我有这些模型:
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 中建立的,当我查询所有用户但是当我对自定义用户使用这个自定义查询时,餐点被定义为 null 我不知道为什么
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 中执行此查询时
{
currentUser {
userId
mail
meals {
name
}
}
}
它告诉我饭菜是无效的,但它们不是...
{
"data": {
"currentUser": {
"userId": "02e7b50a-1a51-4d3b-b26b-57ed08d89c5a",
"mail": "mak@gmail.com",
"meals": null
}
}
}
我通过查看我的 neo4j 数据库知道这一点,也因为当我查询所有用户时
{
users {
mail
meals {
name
}
}
}
我可以看到饭菜的价值:
{
"data": {
"users": [
{
"mail": "mak@gmail.com",
"meals": [
{
"name": "frites"
},
{
"name": "mcdo"
},
{
"name": "sushi"
}
]
}
]
}
}
解决方案
据我了解,您只需要提供顶级节点,然后 GRAND 堆栈将处理获取其他关系等。不幸的是,文档似乎不太清楚。尝试使用:
type Query {
currentUser: User
@cypher(
statement: """
MATCH (u:User {userId: $auth.jwt.userId})
RETURN u
"""
)
}
推荐阅读
- javascript - TypeError:运行 Jest 单元测试时,mxgraph 不是函数
- python - hamcrest:如何输入布尔值
- r - 如何在 datasummary 的输出中包含“column_spec”?
- python - 错误:索引 9 超出轴 0 的范围,大小为 9
- python - 使用 Python 读取 JSON 文件并打印自定义报告
- python - 使用 Python 的 Webdriver Manager 的 Selenium ChromeDriver 问题
- python - 无法使用 Python 3.10.0 在 Windows 10 上安装 Taurus
- python - 如何使用 python selenium 查找和存储动态加载的元素?
- docker - 在不使用 sudo 的情况下访问使用 docker-compose 构建的图像
- sql - 是否可以使用 TimescaleDB 连续聚合计算累积总和或移动平均值?