Azure Cosmos SQL-使用嵌套数组并使用LIKE关键字 [英] Azure Cosmos SQL - working with nested arrays and using LIKE keyword
本文介绍了Azure Cosmos SQL-使用嵌套数组并使用LIKE关键字的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
作为文档示例,让我使用官方文档中的一个文档:
{
"id": "AndersenFamily",
"lastName": "Andersen",
"parents": [
{ "firstName": "Thomas" },
{ "firstName": "Mary Kay"}
],
"children": [
{
"firstName": "Henriette Thaulow",
"gender": "female",
"grade": 5,
"pets": [{ "givenName": "Fluffy" }]
}
],
"address": { "state": "WA", "county": "King", "city": "Seattle" },
"creationDate": 1431620472,
"isRegistered": true
}
我需要的是选择并完全获取children
中至少有一个pets
元素的所有文档,其中givenName
包含";Fluf&Quot;。
我要构建什么SQL查询来实现它?
推荐答案
以下查询使用JOINs展平内部pets
数组并应用过滤,然后返回整个匹配的系列项目:
SELECT VALUE f
FROM Families f
JOIN c IN f.children
JOIN p IN c.pets
WHERE p.givenName LIKE "%Fluf%"
找出此类查询的复杂性是我认为值得考虑将数据建模为尽可能平坦的原因之一,例如,包括规范化以具有单独的pets
项,这些项可以使用直接属性筛选器进行查询,而无需处理嵌套。根据您的目标,将所有内容合并到一个大型Family
对象中(如示例所示)在实践中不一定是个好主意。
这篇关于Azure Cosmos SQL-使用嵌套数组并使用LIKE关键字的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文