0

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

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

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

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

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

4

1 回答 1

0

您可以通过链接多个调用来构建复杂的查询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);
}
于 2020-03-30T18:06:55.293 回答