Каков наилучший способ получить последнюю запись, относящуюся к ключу раздела, с помощью библиотеки узлов хранилища Azure? - PullRequest
0 голосов
/ 25 октября 2018

Может ли кто-нибудь порекомендовать лучшее решение для получения последней записи, относящейся к ключу раздела, при использовании библиотеки хранилища azure в Node?Поскольку здесь нет опции .orderBy () ... каков наилучший подход?

В C # я, вероятно, сделал бы что-то вроде:

var latestRecord = results.OrderByDescending(r => r.Timestamp).FirstOrDefault();

Каким будет эквивалент при использовании этогобиблиотека узлов для хранения таблиц?

1 Ответ

0 голосов
/ 26 октября 2018

Нам нужно реализовать пользовательскую функцию сравнения для сортировки результатов.

tableService.queryEntities(tableName, query, null, function(error, result, response) {
  if (!error) {
      var latestRecord = result.entries.sort((a,b)=>{
          return new Date(b.Timestamp._) - new Date(a.Timestamp._);
      })[0])
 }});

Результаты оформлены с типом Edm, поэтому нам нужно b.Timestamp._.

Timestamp: { '$': 'Edm.DateTime', _: 2018-10-26T07:32:58.490Z }

Если этот формат как-то неприятен, мы можем получить из ответа объекты без метаданных.Необходимо установить payloadFormat.

tableService.queryEntities(tableName, query, null, {payloadFormat:azure.TableUtilities.PayloadFormat.NO_METADATA},function(error, result, response) {
  if (!error) {
      var latestRecord = response.body.value.sort((a,b)=>{
          return new Date(b.Timestamp) - new Date(a.Timestamp);
      })[0]
 }});
...