DocumentDB查询文档,其中Array_Length> 1

时间:2016-08-11 00:23:40

标签: azure azure-cosmosdb

我有几组文档如下:

[
  {
    "Name": "Document1",
    "Properties": {
      "Property1": [
        "Value1",
        "Value2",
        "Value3",
      ]
    },
    "Tags": null
  },
  {
    "Name": "Document2",
    "Properties": {
      "Property1": [
        "Value1",
      ]
    },
    "Tags": null
  },
  {
    "Name": "Document3",
    "Properties": {
      "Property1": [
        "Value1",
        "Value2",
      ]
    "Property2": [
        "Value1",
      ]
    },
    "Tags": null
  }
]

我需要查询属性节点中Property1数组中有多于1个项目的任何文档。在上面的示例中,我希望只返回Document1Document3。我花了很多时间尝试使用Array_Contains语法,但一直在做空。以下是我最近的尝试:

SELECT * FROM Docs d WHERE ARRAY_LENGTH([d.Properties, 'Property1']) > 1

但是根据我的语法,我会收回所有文件。

1 个答案:

答案 0 :(得分:17)

您需要以下查询:

export FORMS_PATH=export FORMS_PATH=/apps/apps/frmcompile/cmteam/hla
for FILE in `ls $FORMS_PATH/*.fmx`; do  

    if exist "$FILE/*.fmx"; 
    then 
        rm $FILE/err
    fi
done

请注意,DocumentDB的语法适用于分层嵌套数据,您可以像编程语言一样访问d.Properties.Property1,d.Properties.Property1 [0]等属性。