4

我正在做一个 CloudKit JS 网络应用程序。

我在使用比较器 IN 进行查询时遇到问题。我尝试为 fieldValue 属性使用不同的值,但没有一个成功。

这是查询:

  var publicIDs = ['TEST_ID'];  
  var query = {  
            recordType: 'PublicInfo',  
            filterBy: [{  
                      fieldName: 'publicID',  
                      comparator: 'IN',  
                      fieldValue: { value:  publicIDs}  
            }]  
  };  
  publicDB.performQuery(query) ...  

当我这样做时,我得到以下错误结果:

_ckErrorCode: "BAD_REQUEST"  
_extensionErrorCode: undefined  
_reason: "BadRequestException: Invalid value, expected type STRING but actual value was a list with objects of class java.lang.String"  
_recordName: undefined  
_redirectURL: undefined  
_retryAfter: undefined  
_serverErrorCode: "BAD_REQUEST"  
_subscriptionID: undefined  
_uuid: "5470373b-8665-49a0-8c3c-ebbd4df37bbd"  
_zoneID: undefined  
message: "BadRequestException: Invalid value, expected type STRING but actual value was a list with objects of class java.lang.String"  

如果我更换

  fieldValue: { value:  publicIDs}  

  fieldValue: { value:  publicIDs, type: 'list' }  

甚至

  fieldValue: { value:  publicIDs, type: 'array' }  

我得到以下错误结果:

_ckErrorCode: "BAD_REQUEST"  
_extensionErrorCode: undefined  
_reason: "BadRequestException: Unexpected input"  
_recordName: undefined  
_redirectURL: undefined  
_retryAfter: undefined  
_serverErrorCode: "BAD_REQUEST"  
_subscriptionID: undefined  
_uuid: "ccb1d8bb-03e6-476b-b111-89fe3cddbf6d"  
_zoneID: undefined  
message: "BadRequestException: Unexpected input"  

如果我在查询中使用比较器“EQUALS”和单个值而不是数组,我会得到正确的结果而不会出错。

Cloudkit JS 文档说我们可以使用“IN”比较器。但是没有更多信息,即如何在查询中指定数组值。

有谁知道正确的语法使用?

4

0 回答 0