Azure存储表查询 - 结果与响应

时间:2016-02-22 03:08:51

标签: node.js azure azure-storage

我正在使用node.js作为我的服务器,并在我的存储表所在的Azure上拥有一个帐户。我正在使用以下内容检索特定分区的所有记录:

var query= new azure.TableQuery().where('PartitionKey eq ?',username);
tableSvc.queryEntities(localTableName,query, null, function(error, result, response) {

}

当此调用回来时,我想访问表的其余字段的值。但是当我使用result.entries这样做时,它看起来很奇怪。或者,我想我可以通过response.body.value.userID访问结果。

以下是“result.entries”与“response”对象的结构如下:

    result.entries :
    [ { PartitionKey: { '$': 'Edm.String', _: '048tfbne' },
        RowKey: { '$': 'Edm.String', _: '145610564488450166' },
        Timestamp: 
               { '$': 'Edm.DateTime',
                   _: Mon Feb 22 2016 01:47:26 GMT+0000 (UTC) },
        username: { _: '048tfbne' },
        userID: { _: '145610564488450166' },
        deleteAfter: { _: 'not set yet' },
        '.metadata': { etag: 'W/"datetime\'2016-02-22T01%3A47%3A26.4394133Z\'"' } } ]

    response : 
    { isSuccessful: true,
        statusCode: 200,
              body: 
                { 'odata.metadata': 'https://photoshareuserdata.table.core.windows.net/$metadata#userIdentifier',
                value: 
                    [ { 'odata.etag': 'W/"datetime\'2016-02-22T01%3A47%3A26.4394133Z\'"',
                        PartitionKey: '048tfbne',
                        RowKey: '145610564488450166',
                        Timestamp: '2016-02-22T01:47:26.4394133Z',
                        username: '048tfbne',
                        userID: '145610564488450166',
                        deleteAfter: 'not set yet' } ] },

我认为results.entries是访问记录的更好方法,但我有点像嵌套对象和Edm.String一样。

哪种方法可以更好地访问记录?

2 个答案:

答案 0 :(得分:1)

Table Node Sample显示了如何根据查询访问表中的实体。请参阅方法“runPageQuery”。

答案 1 :(得分:0)

实际上,根据官方Section: Query a set of entities,有一段如下:

  

如果成功, result.entries 将包含与查询匹配的实体数组。如果查询无法返回所有实体, result.continuationToken 将为非null,并可用作queryEntities的第三个参数以检索更多结果。

我们还可以在GitHub上的Azure-storage-for-node存储库中引用sample。哪位告诉了我们答案。