OrientDB:containsall运算符

时间:2015-11-08 21:15:36

标签: document fetch orientdb baasbox

我收集了文件。文档有一个字段,其值是一个映射数组(例如:带有一个字段name的映射)。结构是这样的:

{
  arrayfield: [
    {
       name: "value1",
    },
    {
       name: "value2",
    }
  ]
}

我想获取arrayfieds所有地图包含指定数组值的文档。文档说我可以使用containsall运算符。我以这种方式使用它:

select from SomeCollection where arrayfiled containsall (name in ['value1','value2'])

但是这种结构总是返回空结果。我哪里弄错了?感谢。

PS:如果我的问题不可理解,我可以发布更详细的收集示例以及我希望收到的结果。

2 个答案:

答案 0 :(得分:0)

尝试以下查询

select from SomeCollection where arrayfiled.name contains "value1" and arrayfiled.name contains "value2"

enter image description here

答案 1 :(得分:0)

找到解决我的问题的解决方案,不包含containsAll:

select from SomeCollection where not (arrayfield contains (fname not in ["value1", "value2"]))