Как добавить параметры ограничения при получении данных из bigTable? Может кто-нибудь дать мне правильный синтаксис для этого в NodeJS - PullRequest
3 голосов
/ 01 апреля 2020

Курс валют Я делаю так

var [rowData] = await table.row(key).get({limit: 2});

Все еще получаю 4 результата вместо 2.

Ответы [ 2 ]

2 голосов
/ 01 апреля 2020

Если вы хотите получить 2 столбца в отдельной строке, есть несколько способов сделать это с помощью фильтров.

Вы можете использовать ячейки для фильтра строки:

const filter = {
    row: {
      cellLimit: 2,
    },
};

await table
    .createReadStream({
    filter,
    })
    .on('error', err => {
    // Handle the error.
    console.log(err);
    })
    .on('data', row => {
    // Use the row data.
    })
    .on('end', () => {
    // All rows retrieved.
    });

Вы также можете использовать ячейки для фильтра столбцов:

const filter = {
    column: {
      cellLimit: 2,
    },
};

Документация фильтра Bigtable все еще является WIP, но представляет собой набор примеров кода с различными фильтрами, которые можно использовать с вашим читает.

Я не верю, что вы можете сделать фильтр с получением одной строки, но вы можете создать сканирование, которое читает только этот ключ строки, и это будет фактически то же самое. Дайте мне знать, если вам нужна дополнительная поддержка по этому вопросу.

1 голос
/ 02 апреля 2020

работал для меня:

var filter = [
      {
         family: 'payloads'
      },
      {
         row: {
                key: identifier,
                cellLimit:2
         }
      }
];
...