Azure cosmosdb 当Where子句数据位于子数组中时,如何查询CosmosDB?
我有以下文件Azure cosmosdb 当Where子句数据位于子数组中时,如何查询CosmosDB?,azure-cosmosdb,azure-cosmosdb-sqlapi,Azure Cosmosdb,Azure Cosmosdb Sqlapi,我有以下文件 { "id": "46c0ccbc-7a05-41dc-bc33-e9d1e69b74fa", "_id": "5bf8b90f9568cf0001463719", "vendor": "XXX", "updatedAt": "2018-11-26T02:17:59.311Z", "locales": [ { "title": "351011", "description": "
{
"id": "46c0ccbc-7a05-41dc-bc33-e9d1e69b74fa",
"_id": "5bf8b90f9568cf0001463719",
"vendor": "XXX",
"updatedAt": "2018-11-26T02:17:59.311Z",
"locales": [
{
"title": "351011",
"description": " ",
"categories": [
"Children",
"Accessories"
],
"brand": null,
"images": [
"https://lp.example.com/app006prod?set=source[02_0690165_001_001],type[PRODUCT],device[hdpi],quality[80],ImageVersion[2018081]&call=url[file:/product/main]"
],
"country": "SE",
"currency": "SEK",
"language": "en",
"variants": [
{
"artno": "example",
"urls": [
"https://www.example.com/en_sek/children/baby-newborn/product.cotton-cashmere-newborn-mittens-red.0690165001.html"
],
"price": 120,
"stock": 15,
"attributes": {
"size": "One Size",
"color": "Burgundy"
}
}
]
}
],
"_rid": "QEwcAOOf+rUHAAAAAAAAAA==",
"_self": "dbs/QEwcAA==/colls/QEwcAOOf+rU=/docs/QEwcAOOf+rUHAAAAAAAAAA==/",
"_etag": "\"00000e00-0000-0000-0000-5bfc890d0000\"",
"_attachments": "attachments/",
"_ts": 1543276813
}
我正在尝试编写一个简单的查询,其中列出了所有包含子类的文档
我尝试了以下查询,但它不起作用
SELECT * FROM c where c.locales.categories = "Children"
我假设我引用的子数组是错误的,但编写此查询的正确方法是什么?您需要使用ARRAY\u CONTAINS函数
尝试以下操作:从c中选择*,其中数组_包含c.locales[0]。类别、子项,您使用locales[0],因为如果我想要图像,它是第一个子数组,我将执行locales[1]?不,您仍将执行c.locales[0]。图像。这正是我发现CosmosDB SQL工作的方式。好吧,但是如果我想在变体数组下搜索artno呢?下面有dict,如何称呼它们?c.locales[0]。变体[0]。artno