Nosql 在Azure Cosmos中创建和查询项目列表
我正在Azure Cosmos中构建应用程序,创建查询时遇到问题。使用下面的数据集,我想创建一个查询,通过搜索所有TraitId为“Athletic”和“Slim”的字符,只查找CharacterId“Susan” 这是我的JSON数据集Nosql 在Azure Cosmos中创建和查询项目列表,nosql,azure-cosmosdb,Nosql,Azure Cosmosdb,我正在Azure Cosmos中构建应用程序,创建查询时遇到问题。使用下面的数据集,我想创建一个查询,通过搜索所有TraitId为“Athletic”和“Slim”的字符,只查找CharacterId“Susan” 这是我的JSON数据集 { "characterId": "Bob", "traits": [ { "traitId": "Athletic", "trai
{
"characterId": "Bob",
"traits": [
{
"traitId": "Athletic",
"traitId": "Overweight"
}
],
},
{
"characterId": "Susan",
"traits": [
{
"traitId": "Athletic",
"traitId": "Slim"
}
],
},
{
"characterId": "Jerry",
"traits": [
{
"traitId": "Slim",
"traitId": "Strong"
}
],
}
]
我最近遇到的是这个查询,但它充当OR语句,我想要的是and语句
从字符f中选择*,其中f.traits位于(“运动型”、“苗条型”)
非常感谢您的帮助
编辑:我找到了这个问题的答案。如果有人对此感兴趣,此查询将给出我想要的结果:
SELECT * FROM Characters f
WHERE EXISTS (SELECT VALUE t FROM t IN f.traits WHERE t.traitId = 'Athletic')
AND EXISTS (SELECT VALUE t FROM t IN f.traits WHERE t.traitId = 'Slim')
我的答案是使用
EXISTS
语句和搜索traits列表的SELECT
语句。在我的程序中,我可以使用StringBuilder创建一个SQL语句,该语句将我要查找的每个特征的和EXISTS
语句连接起来:
SELECT * FROM Characters f
WHERE EXISTS (SELECT VALUE t FROM t IN f.traits WHERE t.traitId = 'Athletic')
AND EXISTS (SELECT VALUE t FROM t IN f.traits WHERE t.traitId = 'Slim')
您好,感谢您的分享,您可以将您的解决方案总结为完整的答案,以结束此答案,供论坛上的任何人参考。谢谢。