可以在DocumentDB查询中使用IN
语句吗?像:
SELECT * FROM c where c.FormId in(1,2,3,4,5,6,7,8,9,10)
我不想使用OR
,因为有限制(只有6个)
where (c.FormId =1 or c.FormId= 2 or c.FormId =3
Or c.FormId = 4 Or c.FormId=5 Or c.FormId=6)
答案 0 :(得分:2)
修改强> 我们刚刚宣布支持查询中的IN(和其他)关键字 http://azure.microsoft.com/blog/2015/05/06/new-documentdb-sql-keywords-operators-and-functions/
今天;有两种方法可以解决这个问题
1)编写一个UDF为您执行此操作并在您的选择
中使用它2)或者,您可以根据身份识别单独进行查询。其中FormId = 1,另一个查询FormId = 2等。
我知道这涉及多个服务器往返,但根据您的应用程序与DocumentDB服务相关的位置,并行执行多个查询可能不会那么糟糕。
使用像这样的单个谓词发出多个查询时,查询可以超级高效,因为它使用默认情况下属性的哈希索引。
在SELECT的WHERE部分中使用UDF将导致执行扫描,这可能导致次优性能和更高的查询费用。
PS。如果您希望为IN运营商本地添加支持,请在http://feedback.azure.com/forums/263030-documentdb/suggestions/6395357-in-operator
上投票支持