在javascript项目中使用返回的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

在我的javascript项目中,我使用长密码查询。查询的开头非常相似。我可以在新查询中使用一个函数的节点返回吗?我使用neo4j驱动程序和社区neo4j版本。为了简化我的问题,我更改了示例中的查询

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
结果并筛选感兴趣的节点。

谢谢您的回答!我知道我可以在一个查询中写出来。我只是用一个简单的例子来说明我想做什么。