我不是OrientDB的专家,所以也许我的问题听起来很愚蠢;但是我没有在文档或网络上找到任何答案。
This is a sample of a data structure that I have: 我想找到所有有蓝眼睛的海狸,他们很开心,他们知道。
我确实设法用out()函数选择眼睛颜色和幸福状态 - 类似于
SELECT out('has').eyeColors, out('is').happinessState FROM beavers
但是如何通过那些连接的顶点进行过滤?我试过了
SELECT * FROM beavers WHERE out('has').eyeColors = 'blue' AND out('is').happinessState = 'happy and knows it'
和
SELECT * FROM beavers WHERE (SELECT out('has').eyeColors FROM beavers) = 'blue' AND (SELECT out('is').happinessState FROM beavers) = 'happy and knows it'
但两种查询类型都倾向于返回空结果。
那么 - 我怎样才能做出这样的选择?
*我运行Community Edition,v.2.1.11,并在服务器端JS功能中完成所有这些。
谢谢, 格雷戈里
答案 0 :(得分:2)
CONTAINS
字,因为out()
- in()
和both()
- 会返回一个列表。
例如
select from Beaver where out('has').eyeColors contains "Blue" and out("iss").happinessState contains "happy and knows it"
您可以通过选择它来验证它是否返回列表:
select out('has').eyeColors from Beaver
PS
我看到你正在使用名为is
的边缘类,我认为这是不允许的,因为它是一个私有词。
希望它有所帮助。伊万
<强>更新强>
select name from Children
let $a=(select from Beaver where in('has').@rid contains $parent.$current.@rid and out('has').eyeColor contains "Blue" and out("iss").happinessState contains "happy and knows it")
where $a.size() > 0