我使用Azure表存储和节点js作为票务应用程序。我使用客户端的名称作为分区键,并将票证ID用作行键。例如:
RowKey: {'_': 232344}
我希望行键是ticketid和客户电话号码的组合。例如:
RowKey: {'_': 232344_9393944392} or RowKey: {'_': 2323449393944392}
并能够使用客户的电话号码对行密钥进行部分搜索,并检索客户提出的所有票证。我怎么能在节点js中做到这一点?
以下代码是我查询表存储的方式。
const azure = require('azure-storage');
const query = new azure.TableQuery().where('PartitionKey eq ?',client).and('Rowkey eq?',ticketId);
这是我被困的地方,因为我不知道如何对行键进行部分搜索。
有两种可能的解决方案:
PhoneNumber_TicketId
。如果是这样,在票证中搜索电话号码可以转换为过滤字符串,例如RowKey ge '9393944392' and RowKey lt '9393944393'
,这是一个全表扫描,因为字符串中没有过滤PartitionKey。由于全表扫描发生,这是一种效率较低的方法。