我通过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
命令可用,或者有没有办法查询所有分区或行键并自行搜索?
答案 0 :(得分:1)
是否有可用的endsWith命令,或者有没有办法 查询所有分区或行键并自己进行搜索?
不幸的是,Azure表存储中没有startsWith
和endsWith
命令。对于startsWith
,我猜你实施的黑客类似于此处列出的解决方案:Can PartitionKey be queried with StartsWith?。
但是endsWith
没有这样的黑客攻击。一种可能性是将另一个实体存储在您反转PartitionKey
(或RowKey
)的位置,然后应用startsWith
黑客。例如,您的PartitionKey
为abcdef
,您需要找到以ef
结尾的实体,您可以将PartitionKey
另一个实体存储为fedcba
,然后使用fe
应用startsWith hack(再次反转您正在搜索的字符串)。