Azure表存储的`endsWith`和`startsWith`

时间:2018-04-08 15:53:23

标签: node.js azure azure-cosmosdb azure-table-storage

我通过Node.js在CosmosDB上使用Azure表存储。我发现使用大于和小于提供startsWith功能的黑客攻击。

另一方面,我仍然需要endsWith功能,但无法找到使其正常工作的方法。可能是我必须拉入所有分区或行键然后自己进行字符串搜索的情况之一。

我注意到Azure Table与odata具有相同的查询格式,在$filter的本文档中,我看到列出了endsWith命令:https://docs.microsoft.com/en-us/previous-versions/dynamicsnav-2016/hh169248(v=nav.90)

是否有endsWith命令可用,或者有没有办法查询所有分区或行键并自行搜索?

1 个答案:

答案 0 :(得分:1)

  

是否有可用的endsWith命令,或者有没有办法   查询所有分区或行键并自己进行搜索?

不幸的是,Azure表存储中没有startsWithendsWith命令。对于startsWith,我猜你实施的黑客类似于此处列出的解决方案:Can PartitionKey be queried with StartsWith?

但是endsWith没有这样的黑客攻击。一种可能性是将另一个实体存储在您反转PartitionKey(或RowKey)的位置,然后应用startsWith黑客。例如,您的PartitionKeyabcdef,您需要找到以ef结尾的实体,您可以将PartitionKey另一个实体存储为fedcba,然后使用fe应用startsWith hack(再次反转您正在搜索的字符串)。