根据时间戳Azure存储表/ Azure Cosmos DB进行查询

时间:2019-05-09 07:29:18

标签: node.js azure timestamp azure-cosmosdb azure-table-storage

我正在尝试使用针对Node.js的Azure表存储SDK在Timestamp的基础上查询Azure Cosmos DB表中的实体

我在数据库中使用的时间戳记

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);

但是没有结果为我返回。

我用Google搜索了一下,并且发现了以下堆栈溢出问题

nodejs query azure storage table according to timestamp

答案中的两个解决方案都不适合我。

1 个答案:

答案 0 :(得分:0)

这是我的示例代码,适用于我,如下所示,您可以参考重试。希望对您有所帮助。

我通过命令npm i azure-storage安装了Node.js的Azure存储SDK

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);
});