Neo4j 失去在GrandTack中对自定义查询进行排序/筛选的能力
我试图通过隐式过滤某些类型来增强我现有的GRANDstack应用程序。您也可以将其视为访问控制 我有一种叫做住房单元的类型。以前,HousingUnit的查询是通过模式扩展自动创建的。现在我想通过一个模式来限制返回的住房单元。对/graphql的请求将携带一个JWT,其中包含一些信息,这些信息将作为cypherParams(例如userEmail)提供,以识别当前用户。对于HousingUnit(和其他类型),我只想返回用户所在组织创建的类型。HousingUnit查询的解决方案如下所示Neo4j 失去在GrandTack中对自定义查询进行排序/筛选的能力,neo4j,graphql,cypher,apollo-server,grandstack,Neo4j,Graphql,Cypher,Apollo Server,Grandstack,我试图通过隐式过滤某些类型来增强我现有的GRANDstack应用程序。您也可以将其视为访问控制 我有一种叫做住房单元的类型。以前,HousingUnit的查询是通过模式扩展自动创建的。现在我想通过一个模式来限制返回的住房单元。对/graphql的请求将携带一个JWT,其中包含一些信息,这些信息将作为cypherParams(例如userEmail)提供,以识别当前用户。对于HousingUnit(和其他类型),我只想返回用户所在组织创建的类型。HousingUnit查询的解决方案如下所示 Hou
HousingUnit:async(父级、信息、上下文、解析信息)=>{
const session=context.driver.session()
const cypher=`MATCH(u:UserAccount),其中u.email=$cypherParams.userEmail MATCH(u)-[:为]->(o:Organization)
与o
匹配(o){
const obj=record.toObject()
控制台日志(obj)
返回obj.housingUnit.properties
})
})
.catch(console.log)
。然后((结果)=>{
session.close()
返回结果
})
返回结果
},
我的问题是,由于我的显式密码查询和返回的结果,我不能由于任何其他过滤或排序
请求
query {
HousingUnit(orderBy:name_asc) {
name
}
}
及
将产生相同顺序的结果。
此外,我们有很多不同的类型,我希望有一种更简单的方法来实现这一点(可能是中间件或装饰器,重用增强查询)
query {
HousingUnit(orderBy:name_desc) {
name
}
}