Как вы можете динамически создавать Azure tablequery в узле на основе количества атрибутов? - PullRequest
0 голосов
/ 30 марта 2020

У меня есть вход, который может быть 1 атрибут или больше. с azure tablequery запрос создается следующим образом:

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

Если у меня более одного атрибута для запроса, он выглядит следующим образом:

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

Как я могу динамически создать запрос, не зная, сколько будет атрибутов? В DynamodB я просто создаю строку запроса динамически, но я не знаю, как это сделать здесь, где вы должны добавить и .and () в конец функции ...

1 Ответ

0 голосов
/ 30 марта 2020

Вы строите сложные запросы, объединяя несколько вызовов в and, например:

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

Обратите внимание, что вам не нужно также строить TableQuery в одном операторе, вы можете разбить его на несколько операторов, возможно с условным, например:

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

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