1

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

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

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

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

但是这种构造总是返回空结果。我在哪里做错了?谢谢。

PS:如果我的问题无法理解,我可以发布更详细的集合示例以及我想收到的结果。

4

2 回答 2

1

找到了一个解决方案来解决我的问题,而无需 containsAll:

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

于 2015-11-10T17:52:04.570 回答
0

尝试以下查询

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

在此处输入图像描述

于 2015-11-10T13:37:01.277 回答