首页 > 解决方案 > 如何根据属性数量在节点中动态创建 Azure 表查询?

问题描述

我有一个可能是 1 个或更多属性的输入。使用 azure tablequery,查询是这样创建的:

var tableQuery = new TableQuery()
                 .where('Name == ?', 'Person1');

如果我有多个属性要查询,它看起来像这样:

var tableQuery = new TableQuery()
                 .where('Name == ?', 'Person1');
                 .and('Address == ?', '123 Street');

如何在不知道会有多少属性的情况下动态创建查询?在 dynamodb 中,我只是动态地创建了一个查询字符串,但我不知道如何在这里执行,您必须将 .and() 附加到函数的末尾...

标签: node.jsazureazure-cosmosdbazure-table-storageazure-cosmosdb-tables

解决方案


您可以通过链接多个调用来构建复杂的查询and,例如:

var tableQuery = new TableQuery()
    .where('Name == ?', 'Person1')
    .and('AddressStreet == ?', '123 Street')
    .and('AddressCity == ?', 'New York');

请注意,您也不必构建TableQueryin 一个语句,您可以将其拆分为多个语句,可能带有条件,例如:

var tableQuery = new TableQuery()
    .where('Name == ?', 'Person1')
    .and('AddressStreet == ?', '123 Street');

if (city) {
    tableQuery = tableQuery.and('AddressCity == ?', city);
}

推荐阅读