匹配azure documentdb中的数组内容

时间:2015-05-28 14:59:58

标签: azure-cosmosdb nosql

有没有办法产生以下查询?

{ 
  "user": { 
    "name": "john", 
    "tags": ["one", "two", "three"] 
  } 
}

现在给出了一系列标签

["one","two","five"]

我想选择至少有一个与传入标记数组相同的标记的所有用户(如果可能,则为不同)。

1 个答案:

答案 0 :(得分:1)

您必须编写用户定义的函数才能执行此操作。例如,我在StackOverflow中搜索了JavaScript数组交集,发现了这个:Simplest code for array intersection in javascript

您可以在集合中将其注册为UDF,然后查询如下:

SELECT * FROM docs WHERE udf.ARRAY_INTERSECTS(docs.tags, ["a", "b", "c"]) != []

但请注意,这需要扫描..