我希望使用数组属性中的Cypher找到特定的字符串。
假设我有以下类型的只有属性键的数据,即"cpeidofCVE":
Query:
MATCH (n:CpeOfCVE) RETURN n LIMIT 2
Output:
n
{
"cpeidOfCVE": [
"cpe:2.3:o:bsdi:bsd_os:3.1",
"cpe:2.3:o:freebsd:freebsd:1.0",
"cpe:2.3:o:freebsd:freebsd:1.1",
"cpe:2.3:o:freebsd:freebsd:1.1.5.1",
"cpe:2.3:o:freebsd:freebsd:1.2",
"cpe:2.3:o:freebsd:freebsd:2.0",
"cpe:2.3:o:freebsd:freebsd:2.0.1",
"cpe:2.3:o:freebsd:freebsd:2.0.5",
"cpe:2.3:o:freebsd:freebsd:2.1.5",
"cpe:2.3:o:freebsd:freebsd:2.1.6",
"cpe:2.3:o:freebsd:freebsd:2.1.6.1",
"cpe:2.3:o:freebsd:freebsd:2.1.7",
"cpe:2.3:o:freebsd:freebsd:2.1.7.1",
"cpe:2.3:o:freebsd:freebsd:2.2",
"cpe:2.3:o:freebsd:freebsd:2.2.2",
"cpe:2.3:o:freebsd:freebsd:2.2.3",
"cpe:2.3:o:freebsd:freebsd:2.2.4",
"cpe:2.3:o:freebsd:freebsd:2.2.5",
"cpe:2.3:o:freebsd:freebsd:2.2.6",
"cpe:2.3:o:freebsd:freebsd:2.2.8",
"cpe:2.3:o:freebsd:freebsd:3.0",
"cpe:2.3:o:openbsd:openbsd:2.3",
"cpe:2.3:o:openbsd:openbsd:2.4"
]
}
{
"cpeidOfCVE": [
"cpe:2.3:o:bsdi:bsd_os:1.1",
"cpe:2.3:o:caldera:openlinux:1.2",
"cpe:2.3:o:redhat:linux:2.0",
"cpe:2.3:o:redhat:linux:2.1",
"cpe:2.3:o:redhat:linux:3.0.3",
"cpe:2.3:o:redhat:linux:4.0",
"cpe:2.3:o:redhat:linux:4.1",
"cpe:2.3:o:redhat:linux:4.2",
"cpe:2.3:o:redhat:linux:5.0",
"cpe:2.3:o:redhat:linux:5.1"
]
}如何搜索第二个节点的数组值中存在的字符串--比如"cpe:2.3:o:redhat:linux:3.0.3“?
谢谢
发布于 2019-09-12 15:56:12
为此,可以使用IN运算符:
MATCH (n: CpeOfCVE)
WHERE "cpe:2.3:o:redhat:linux:3.0.3" IN n.cpeidOfCVE
RETURN nhttps://stackoverflow.com/questions/57909579
复制相似问题