我如何在我的 Graphql 架构中表示 Neo4j 关系属性?
How do I represent Neo4j relationship properties in my Graphql Schema?
我有一个 Neo4j 数据库,其关系具有 [:FRIENDS {自:“11/2015”}] 等属性。我需要在 GraphQl 架构中表示 "since" 属性。 RELAY 有一个叫做 "edges" 的东西,显然这就是他们实现此功能的方式,但我没有使用 RELAY.....我在 Apollo 中没有看到任何东西(也许我错过了)。有人可以告诉我该怎么做吗?
好的......所以为了得到我想要的东西,即向 graphql 呈现节点和关系(边缘),我做了我称之为变通的方法,返回 object.assign( node,relationship) 到 graphql....缺点是我必须定义一个类型 nodeRel {} 来接收组合的对象,但它可以工作。此外,节点和关系对象不能具有相似的命名属性。我现在可以回答约翰和玛丽成为朋友多长时间或约翰属于哪个团体以及他成为成员多长时间的问题....架构片段:
... memberOf : [Group]
groupStatus : [MemberProfile]
attended : [Meeting]
submittedReport : [Report]
post : [Post]
}
type MemberProfile {
name : String
location : String
created : String
since : String
role : String
financial : Boolean
active : Boolean
}
解析器:
groupStatus(voter) {
let session = driver.session(),
params = { voterid: voter.voterid },
query = `
MATCH (v:Voter)-[r:MEMBER_OF]->(g:Group)
WHERE v.voterid = $voterid
RETURN g AS group,r AS rel;
`
return session
.run(query, params)
.then(result => {
return result.records.map(record => {
return Object.assign(record.get("group").properties, record.get("rel").properties)
})
})
},
我希望这对其他人有帮助....
我有一个 Neo4j 数据库,其关系具有 [:FRIENDS {自:“11/2015”}] 等属性。我需要在 GraphQl 架构中表示 "since" 属性。 RELAY 有一个叫做 "edges" 的东西,显然这就是他们实现此功能的方式,但我没有使用 RELAY.....我在 Apollo 中没有看到任何东西(也许我错过了)。有人可以告诉我该怎么做吗?
好的......所以为了得到我想要的东西,即向 graphql 呈现节点和关系(边缘),我做了我称之为变通的方法,返回 object.assign( node,relationship) 到 graphql....缺点是我必须定义一个类型 nodeRel {} 来接收组合的对象,但它可以工作。此外,节点和关系对象不能具有相似的命名属性。我现在可以回答约翰和玛丽成为朋友多长时间或约翰属于哪个团体以及他成为成员多长时间的问题....架构片段:
... memberOf : [Group]
groupStatus : [MemberProfile]
attended : [Meeting]
submittedReport : [Report]
post : [Post]
}
type MemberProfile {
name : String
location : String
created : String
since : String
role : String
financial : Boolean
active : Boolean
}
解析器:
groupStatus(voter) {
let session = driver.session(),
params = { voterid: voter.voterid },
query = `
MATCH (v:Voter)-[r:MEMBER_OF]->(g:Group)
WHERE v.voterid = $voterid
RETURN g AS group,r AS rel;
`
return session
.run(query, params)
.then(result => {
return result.records.map(record => {
return Object.assign(record.get("group").properties, record.get("rel").properties)
})
})
},
我希望这对其他人有帮助....