Я пытаюсь передать List[String]
в запрос, а затем сопоставить, возможно, несколько узлов по свойству, где значением свойства является строка, переданная в запрос.
Я получаю ошибку - Expected parameter(s): list
import org.neo4j.driver.v1._
def getNodesByPropertyValue(list: List[String]): Future[List[(String, String)]] = {
val getNodes =
s"""
| UNWIND $$list AS propValue
| MATCH (i: item {id: propValue})<-[:CONTAINS]-(c: Collection)
| RETURN i.originalID AS OID
|""".stripMargin
storeAPI.NeoQuery(getNodes).resultList().map {
result =>
result.map {
record =>
record.get("OID").toString
}
}).recoverWith {
case e: Exception =>
logger.error(s"Failure in getNodesByProperty: ", e)
throw e
}
}
Кроме того, когда я использую $list
, я получаю сообщение об ошибке, говорящее, что Neo4J не распознает функцию List()
.
Решение этого вопроса будет оценено.
Кроме того, в чем разница между передачей переменной с $
в запрос и передачей переменной с $$
? Я думал, что $$
может быть использован для коллекций, но я не уверен, я еще не нашел информацию о нем.
Спасибо.