从Azure Tables获取所有实体时,我们能够过滤分区密钥吗?

时间:2013-09-13 10:05:12

标签: php azure azure-table-storage

正如标题中所提到的,我想知道从Azure Tables获取所有实体时是否可以过滤分区密钥?

我尝试在过滤器中添加它,但它不起作用:

$filter = "PartitionKey eq '" . $fields['authorId'] . "'";
$tableRest_result = $this->tableRestProxy->queryEntities($this->_tables['THEME']['SETTINGS'], $filters);
$entities = $tableRest_result->getEntities();

我使用PHP访问Azure表。

非常感谢您的帮助。谢谢!

1 个答案:

答案 0 :(得分:0)

我认为有可能这样做。表服务REST API支持 query projection ,您可以从表中为每个实体(http://blogs.msdn.com/b/windowsazurestorage/archive/2011/09/15/windows-azure-tables-introducing-upsert-and-query-projection.aspx)获取属性的子集。

我简要地查看了Github上的PHP SDK代码(https://github.com/WindowsAzure/azure-sdk-for-php/blob/master/WindowsAzure/Table/Models/QueryEntitiesOptions.php),我认为您应该能够使用addSelectField()方法指定希望查询返回的字段。如果我没有记错的话,这是QueryEntitiesOption的一部分,您可以将其指定为queryEntities函数(https://github.com/WindowsAzure/azure-sdk-for-php/blob/master/WindowsAzure/Table/TableRestProxy.php)的参数。我不使用PHP,所以我自己没有尝试过。试一试,看看是否有效。

希望这有帮助。