在javascript项目中使用返回的Neo4j节点
在我的javascript项目中,我使用长密码查询。查询的开头非常相似。我可以在新查询中使用一个函数的节点返回吗?我使用neo4j驱动程序和社区neo4j版本。为了简化我的问题,我更改了示例中的查询在javascript项目中使用返回的Neo4j节点,javascript,neo4j,cypher,Javascript,Neo4j,Cypher,在我的javascript项目中,我使用长密码查询。查询的开头非常相似。我可以在新查询中使用一个函数的节点返回吗?我使用neo4j驱动程序和社区neo4j版本。为了简化我的问题,我更改了示例中的查询 const doSomething1 = async() =>{ let query = [ 'MATCH (person:Person)', 'RETURN person' ].join('\n'); let _person = aw
const doSomething1 = async() =>{
let query = [
'MATCH (person:Person)',
'RETURN person'
].join('\n');
let _person = await session.run(query,{});
return _person;
};
const doSomething2 = async() =>{
let _person = await doSomething1();
let query = [
'WITH {_testPerson} as _testPerson',
'WHERE _testPerson.age = 18',
'RETURN person'
].join('\n');
let _resultTestPerson = await session.run(query,{
_testPerson: _person,
});
return _resultTestPerson;
};
我希望“doSomething2”函数将返回所有18岁的节点。尝试查看操作符:它接受一个数组,并允许您对其中的每个元素运行查询。您的第二个查询可能如下所示:
UNWIND {arrayOfPeople} AS person
WHERE person.age = 18
RETURN person
另一方面,您给出的示例可以写成一个非常简单的查询。也许您的实际问题可以在一个查询中解决:
MATCH (p:Person)
WHERE p.age = 18
RETURN p
由于
doSomething1
已经获得了所有Person
节点,doSomething2
不需要进行另一个neo4j查询
相反,
doSomething2
应该只遍历doSomething1
结果并筛选感兴趣的节点。谢谢您的回答!我知道我可以在一个查询中写出来。我只是用一个简单的例子来说明我想做什么。