2017-01-31 16 views
0

有没有一种方法来过滤对象掩码?我想获得独立的便携式存储。我以为我可以在blockDeviceCount为0或blockDevices为空的情况下搜索便携式存储卷,但无法让其中一个工作。下面的查询将返回所有存储卷,无论它们是否具有块设备。SoftLayer API:你可以过滤关系属性(objectMask)

https://api.softlayer.com/rest/v3/SoftLayer_Account/PortableStorageVolumes?objectFilter={"portableStorageVolumes":{"blockDevices":{"operation":"is null"}}}&objectMask=mask[blockDeviceCount,blockDevices] 

https://api.softlayer.com/rest/v3/SoftLayer_Account/PortableStorageVolumes?objectFilter={"portableStorageVolumes":{"blockDeviceCount":{"operation":"0"}}}&objectMask=mask[blockDeviceCount,blockDevices] 

谢谢

回答

0

试试这个请求:

https://$USERNAME:[email protected]/rest/v3/SoftLayer_Account/getPortableStorageVolumesobjectMask=mask[storageRepository[guests]] 

基本上不具有任何sotrageRepository和sotrageRepository没有任何客人所有的便携式存储,这意味着便携式存储是没有附加。

现在您需要使用您自己的代码来过滤数据,因为使用objectFilters无法过滤数据。

Regards

+0

嗨,尼尔森,谢谢。为了澄清,你可以过滤'关系和计数属性'?或者,objectFilters仅适用于“本地属性”(当您在文档中查看DataType帮助页面时,页面左侧列出的属性:https://sldn.softlayer.com/reference/datatypes/SoftLayer_Account) –

+0

对象过滤器不适用于所有数据,对于计数器的情况,当您执行查询这些数据的请求时,这些值不存在于数据库中。对于数组而言,过滤器无法查看数组是否为空或空。因此,在很多情况下,您将需要使用自己的代码来过滤数据,这些过滤器无法正常工作 –