Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
neo4j中的参数化like查询_Neo4j - Fatal编程技术网

neo4j中的参数化like查询

neo4j中的参数化like查询,neo4j,Neo4j,我想将此查询创建为参数化查询 var query = ["Match (name:Name)-[r:IN_CLASS]->(class:Class)-[r1:HAS_STUDENTS]->(s:Student) where id(s)=",rollno," and lower(s.Name)=~'.*",name,".*' RETURN id(s),s.Name limit 5"].join(''); 我已尝试此代码,但出现错误: var query = ["Match (name

我想将此查询创建为参数化查询

var query = ["Match (name:Name)-[r:IN_CLASS]->(class:Class)-[r1:HAS_STUDENTS]->(s:Student) where id(s)=",rollno," and lower(s.Name)=~'.*",name,".*' RETURN id(s),s.Name limit 5"].join('');
我已尝试此代码,但出现错误:

var query = ["Match (name:Name)-[r:IN_CLASS]->(class:Class)-[r1:HAS_STUDENTS]->(s:Student) where id(s)=",rollno," and lower(s.Name)=~'.*{name}.*' RETURN id(s),s.Name limit 5"].join('');

db.query(query , {name : name} , function(err,results){
    if (err) return callback(err);
    if(results){
        return callback(null,results);
    }
    else{
        return callback(null,false);
    }
});

请告诉我哪里错了?

您不能有作为文本一部分的参数。你试过了

... WHERE ... lower(s.Name)=~'.*{name}.*'
相反,整个正则表达式需要是参数值:

... WHERE ... lower(s.Name)=~ {name}
您需要在客户端将值与
*
连接到
*
,并将其作为参数值传入

编辑:

您还可以在密码中连接:

... WHERE ... lower(s.Name)=~'.*'+{name}+'.*'
对于不区分大小写的regexp,请使用:

... WHERE ... s.Name =~'(?i).*'+{name}+'.*'

你能公布你的错误吗?