【问题标题】:Cloudkit JS query filterby recordName gives errorCloudkit JS查询过滤器记录名称给出错误
【发布时间】:2025-11-26 16:00:01
【问题描述】:

在我通过 URL 将记录名称传递到第二页的网站上工作。我看到了 recordName {data} 的正确解析,然后尝试将其用于带有 filterBy 的查询,如下所示:

        var query = { recordType: 'Events', 
            filterBy: [{
                fieldName: 'recordName',
                comparator: 'EQUALS',
                fieldValue: {value: [{data}]
                }
            }]
         };

         return publicDB.performQuery(query).then(function (response) {
            if(response.hasErrors) {
                console.error(response.errors[0]);
                return;
            }

            var records = response.records;
            var numberOfRecords = records.length;
            if (numberOfRecords === 0) {
                console.error('No matching items');
                return;
            }

            self.events(records);

这种方法和其他将 fieldName 指定为 recordName 的尝试都会产生相同的错误消息:

    ckErrorCode:"NOT_FOUND"
    extensionErrorCode:undefined
    reason:"ObjectNotFoundException: no such field recordName"
    recordName:undefined
    redirectURL:undefined
    retryAfter:undefined
    serverErrorCode:"NOT_FOUND"
    subscriptionID:undefined
    uuid:"7ff93475-a22c-4ae2-859f-4a219e0253b1"
    zoneID:undefined
    message:"ObjectNotFoundException: no such field recordName"

这看起来很奇怪,但也许这是很容易解决的问题。

欢迎提出任何建议。

【问题讨论】:

    标签: cloudkit cloudkit-web-services


    【解决方案1】:

    recordName 是一个系统字段,下面是您应该如何查询这些字段:

    var query = {
        recordType: 'Events',
        filterBy: [{
            comparator: 'EQUALS',
            systemFieldName: 'recordName',
            fieldValue: {
                value: 'the-name-of-the-record'
            }
        }]
    }
    

    由于一个已知的错误,您必须在 recordName 周围添加一个额外的包装器:

    var query = {
        recordType: 'Events,
        filterBy: [{
            comparator: 'EQUALS',
            systemFieldName: 'recordName',
            fieldValue: {
                value: {
                    recordName: 'the-name-of-the-record'
                }
            }
        }]
    }
    

    【讨论】:

    • 将近 4.5 年后,该错误仍然存​​在,需要额外的 value 包装器。嘘。
    最近更新 更多