azure-cosmosdb - Azure Cosmos DB 查询
问题描述
我需要通过用户 ID 进行查询,但我认为这段时间与我的查询有关。我尝试了以下 3 个查询。括号和引号给我一个错误,第一个不产生错误但没有结果。
SELECT * FROM c WHERE c.document.BotAccessors.BotState.Profile.UserId = "5351ec9f-46fb-449a-b6f5-1ea07e683015"
SELECT * FROM c WHERE c.document.[BotAccessors.BotState].Profile.UserId = "5351ec9f-46fb-449a-b6f5-1ea07e683015"
SELECT * FROM c WHERE c.document."BotAccessors.BotState".Profile.UserId = "5351ec9f-46fb-449a-b6f5-1ea07e683015"
{
"document": {
"BotAccessors.BotState": {
"Version": 4,
"ConversationState": 0,
"FirstMessageDateTime": "2020-03-04T13:19:20.7657389Z",
"FirstMessage": null,
"LastSeenDateTimeTicks": 637189282249482900,
"Profile": {
"UserId": "5351ec9f-46fb-449a-b6f5-1ea07e683015",
}
}
},
"_etag": "\"0300fbab-0000-0700-0000-5e5fb85e0000\"",
"_rid": "4zYrANO8oXoBAAAAAAAAAA==",
"_self": "dbs/4zYrAA==/colls/4zYrANO8oXo=/docs/4zYrANO8oXoBAAAAAAAAAA==/",
"_attachments": "attachments/",
"_ts": 1583331422
}
解决方案
对于非 a-zA-Z0-9 字符的属性名称,您需要使用带引号的方括号。这是一个例子:
SELECT * FROM c WHERE c["document"]["BotAccessors.BotState"]["Profile"]["UserId"] = "5351ec9f-46fb-449a-b6f5-1ea07e683015"
推荐阅读
- javascript - ember-electron:为 ember 和电子应用程序编译的不同资产
- java - 位于 java 类文件中的 lambda 代码在哪里?
- jquery - 如何显示k条记录,然后显示垂直滚动条数据表
- java - javax.transaction-api:1.3 的 javac 断言错误
- php - 使用文件上传Rest发布数据
- java - Eclipse 控制台不打印汉字
- excel - 使用 sheet().Range().Value 在 VBA 中引用列
- r - 在闪亮中重新编码变量
- angularjs - AngularJs 环境变量(API URL)
- docusignapi - 一旦从批量发送中签名,是否可以得到一份一份的文件?