Curious101
Curious101

Reputation: 1748

Azure Storage Table Query - result vs response

I'm using node.js as my Server and have an account on Azure where my storage table resides. I'm retrieving all records for a specific partition by using the following :

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

}

When this call comes back, I want to access the values for the rest of the fields of table. But when I do that using result.entries, it kinda looks weird. Alternatively I think I can access the results via response.body.value.userID.

Here is how the structure of "result.entries" vs "response" object looks like:

    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' } ] },

I thought results.entries would be a better way to access the records, but I am sort of weirded out by the nested objects and Edm.String here.

Which is a better way to access the records ?

Upvotes: 1

Views: 801

Answers (2)

Gary Liu
Gary Liu

Reputation: 13918

Actually, according the official Section: Query a set of entities, there is a paragraph as following:

If successful, result.entries will contain an array of entities that match the query. If the query was unable to return all entities, result.continuationToken will be non-null and can be used as the third parameter of queryEntities to retrieve more results.

And we also can refer to the sample at Azure-storage-for-node repository on GitHub. Which has told us the answer.

Upvotes: 0

Table Node Sample shows how to access entities in a table as result of a query. See method "runPageQuery".

Upvotes: 1

Related Questions