📅  最后修改于: 2023-12-03 15:30:32.946000             🧑  作者: Mango
Azure Cosmos DB是一项多模型数据库服务,它支持主要NoSQL模型和API,包括DocumentDB SQL。 DocumentDB SQL是Azure Cosmos DB中用于访问和查询数据的主要API。
Azure Cosmos DB中的所有数据都存储在作为容器的集合中。集合可以包含各种文档类型,包括简单的JSON对象,嵌套对象和数组。
在DocumentDB SQL中,数组是包含零个或多个项目的列表。数组中的项目可以是各种类型,例如字符串,数字,嵌套对象等。可以在查询中访问数组的单个项目,可以使用数组之间的关系进行查询,例如包含和相交等。
在DocumentDB中,创建数组是将项目列表组合到方括号中。下面是一些示例:
{
"fruits": ["apple", "banana", "orange"]
}
在上面的示例中,"fruits"属性包含一个具有三个元素的字符串数组。 数组可以为空,例如:
{
"fruits": []
}
可以使用数组索引访问数组中的单个项目。数组索引从零开始,例如,“fruits”属性中的第一个元素是[0]:
SELECT c.fruits[0] FROM c
上面的查询返回“apple”。
可以使用数组查询运算符来对包含数组属性的文档进行查询。 下面是一些示例:
使用ARRAY_CONTAINS
查找包含特定值的数组。
SELECT * FROM c WHERE ARRAY_CONTAINS(c.fruits, 'apple')
上面的查询将返回包含“apple”水果的所有文档。
使用ARRAY_LENGTH
查找具有指定数量的数组元素的文档。
SELECT * FROM c WHERE ARRAY_LENGTH(c.fruits) = 3
上面的查询将返回所有具有三个水果的文档。
使用ARRAY_SLICE
将数组缩小到指定的索引范围。
SELECT ARRAY_SLICE(c.fruits, 0, 2) AS first_two_items FROM c
上面的查询将返回数组的前两个元素。
在DocumentDB中,数组是组成文档的重要组成部分,并且可以使用数组查询运算符访问和查询数组。 处理数组在处理嵌套或多值数据时非常有用。