0

我的表结构有一个分区键、行键和一个包含 JSON 数据的列。我想根据分区键和 JSON 数据中的特定值查询表。

示例 JSON 数据:

{"ConsumerId":"7","value01":"850.58"}

我创建的查询是

var query = new TableQuery<CloudModelDetail>().Where(TableQuery.CombineFilters(TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.Equal, retailerReferenceId),
            TableOperators.And, TableQuery.GenerateFilterCondition("CloudModelJsonData","Contains", consumerId)));

但这并没有给我想要的结果。谁能帮我正确查询?

4

1 回答 1

2

Contains不幸的是,表存储不支持通配符匹配。(请参阅https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/query-operators-supported-for-the-table-service

您可以考虑使用CompareTo, 它的作用类似于StartsWith, 作为不等式匹配器 - 但这仅在您的 JSON 数据始终以{"ConsumerId":"value",

更好的是 - 添加ConsumerId为附加字段,或重新考虑分区和行键结构以使用包含消费者 ID 的复合键,这也应该有助于提高性能。

于 2017-03-08T21:48:58.650 回答