Запрос на основе Timestamp Azure Storage Table / Azure Cosmos DB - PullRequest
0 голосов
/ 09 мая 2019

Я пытаюсь запросить объекты в таблице Azure Cosmos DB на основе метки времени, используя SDK хранилища таблиц Azure для node.js

Временная метка, которая у меня есть в БД, следующая

enter image description here

и в коде я запрашиваю создание фильтра, подобного этому

const filter = storage.TableQuery.dateFilter(
    "Timestamp",
    storage.TableUtilities.QueryComparisons.GREATER_THAN,
    new Date(Date.UTC(2019, 0, 1))
);

query = new TableQuery().where(filter);

Но результаты для меня не возвращаются.

Я немного погуглил и нашел следующий вопрос о переполнении стека

таблица хранения лазера запроса nodejs в соответствии с отметкой времени

Оба решения в этомответ не работает для меня.

1 Ответ

0 голосов
/ 13 мая 2019

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

Я установил Azure Storage SDK для Node.js с помощью команды npm i azure-storage

var azure = require('azure-storage');
var tableService = azure.createTableService('<your storage account>','<your storage key>');

Существует два способа создания объекта запроса.

  1. Непосредственно используйте функцию where со строкой и значениями шаблона фильтра.

    var query = new azure.TableQuery().where('Timestamp ge ?', new Date(Date.UTC(2019, 0, 1)));
    
  2. Сначала создайте выражение фильтра, а затем сгенерируйте запрособъект.

    var filter = azure.TableQuery.dateFilter('Timestamp', azure.TableUtilities.QueryComparisons.GREATER_THAN, new Date(Date.UTC(2019, 0, 1)));
    var query = new azure.TableQuery().where(filter);
    

Наконец, для запроса сущностей таблицы.

console.log(query);
tableService.queryEntities('<your table name>', query, null, function(error, result, response) {
  if(!error) {
    // query was successful
    console.log(result);
  }
  console.log(error);
});
...