如何使用DocumentDB进行以下查询:
var categoryID = '1,2,3,4,5';
SELECT * FROM products doc WHERE ARRAY_CONTAINS(doc._sort.category, ' + categoryID + ');
这显然不起作用。
答案 0 :(得分:1)
你需要像
这样的东西SELECT * FROM product WHERE ARRAY_CONTAINS([1,2,3,4,5], product.category)
也可参数化:
SELECT * FROM product WHERE ARRAY_CONTAINS(@categoryIDs, product.category)
其中@categoryIDs = [1,2,3,4,5]。
在.NET中,这是一个片段:
Uri collectionUri = UriFactory.CreateDocumentCollectionUri("testdb", "testcollsingle");
int[] array = new int[] { 1, 2, 3 };
SqlQuerySpec query = new SqlQuerySpec(
"SELECT VALUE ARRAY_CONTAINS(@categoryIds, 1)",
new SqlParameterCollection(new SqlParameter[] {
new SqlParameter { Name = "@categoryIds", Value = array
}}));
bool result = client.CreateDocumentQuery<bool>(collectionUri, query)
.AsEnumerable()
.FirstOrDefault();
详细信息:https://msdn.microsoft.com/library/azure/dn782250.aspx#bk_array_contains