正如标题中所提到的,我想知道从Azure Tables获取所有实体时是否可以过滤分区密钥?
我尝试在过滤器中添加它,但它不起作用:
$filter = "PartitionKey eq '" . $fields['authorId'] . "'";
$tableRest_result = $this->tableRestProxy->queryEntities($this->_tables['THEME']['SETTINGS'], $filters);
$entities = $tableRest_result->getEntities();
我使用PHP访问Azure表。
非常感谢您的帮助。谢谢!
答案 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,所以我自己没有尝试过。试一试,看看是否有效。
希望这有帮助。