【问题标题】:How can I use CloudKit web services to query based on a reference field?如何使用 CloudKit Web 服务根据参考字段进行查询?
【发布时间】:2015-12-21 11:14:36
【问题描述】:

我有两个看起来像这样的 CloudKit 数据对象:

父对象:

{
    "records": [
        {
            "recordName": "14102C0A-60F2-4457-AC1C-601BC628BF47-184-000000012D225C57",
            "recordType": "ParentObject",
            "fields": {
                "fsYear": {
                    "value": "2015",
                    "type": "STRING"
                },
                "displayOrder": {
                    "value": 2015221153856287200,
                    "type": "INT64"
                },
                "fjpFSGuidForReference": {
                    "value": "14102C0A-60F2-4457-AC1C-601BC628BF47-184-000000012D225C57",
                    "type": "STRING"
                },
                "fsDateSearch": {
                    "value": "2015221153856287158",
                    "type": "STRING"
                },
            },
            "recordChangeTag": "id4w7ivn",
            "created": {
                "timestamp": 1439149087571,
                "userRecordName": "_0d26968032e31bbc72c213037b6cb35d",
                "deviceID": "A19CD995FDA3093781096AF5D818033A241D65C1BFC3D32EC6C5D6B3B4A9AA6B"
            },
            "modified": {
                "timestamp": 1439149087571,
                "userRecordName": "_0d26968032e31bbc72c213037b6cb35d",
                "deviceID": "A19CD995FDA3093781096AF5D818033A241D65C1BFC3D32EC6C5D6B3B4A9AA6B"
            }
        }
    ],
    "total": 
}

子对象:

{
    "records": [
        {
            "recordName": "2015221153856287168",
            "recordType": "ChildObject",
            "fields": {
                "District": {
                    "value": "002",
                    "type": "STRING"
                },
                "ZipCode": {
                    "value": "12345",
                    "type": "STRING"
                },
                "InspecReference": {
                    "value": {
                        "recordName": "14102C0A-60F2-4457-AC1C-601BC628BF47-184-000000012D225C57",
                        "action": "NONE",
                        "zoneID": {
                            "zoneName": "_defaultZone"
                        }
                    },
                    "type": "REFERENCE"
                },
            },
            "recordChangeTag": "id4w7lew",
            "created": {
                "timestamp": 1439149090856,
                "userRecordName": "_0d26968032e31bbc72c213037b6cb35d",
                "deviceID": "A19CD995FDA3093781096AF5D818033A241D65C1BFC3D32EC6C5D6B3B4A9AA6B"
            },
            "modified": {
                "timestamp": 1439149090856,
                "userRecordName": "_0d26968032e31bbc72c213037b6cb35d",
                "deviceID": "A19CD995FDA3093781096AF5D818033A241D65C1BFC3D32EC6C5D6B3B4A9AA6B"
            }
        }
    ],
    "total": 1
}

我正在尝试编写一个查询来直接访问 CloudKit Web 服务并根据父对象的引用返回子对象。

我的测试 JSON 看起来像这样:

{"query":{"recordType":"ChildObject","filterBy":{"fieldName":"InspecReference","fieldValue":{ "value" : "14102C0A-60F2-4457-AC1C-601BC628BF47-184-000000012D225C57", "type" : "string" },"comparator":"EQUALS"}},"zoneID":{"zoneName":"_defaultZone"}}

但是,我从 CloudKit 收到以下错误:

{"uuid":"33db91f3-b768-4a68-9056-216ecc033e9e","serverErrorCode":"BAD_REQUEST","re​​ason":"BadRequestException: 意外输入”}

我猜我在查询中的记录字段字典错误。但是,文档并不清楚这在参考对象上应该是什么样子。

【问题讨论】:

    标签: cloudkit cloudkit-web-services


    【解决方案1】:

    您必须重新创建引用的实际对象。在这种特殊情况下,JSON 如下所示:

    {
        "query": {
            "recordType": "ChildObject",
            "filterBy": {
                "fieldName": "InspecReference",
                "fieldValue": {
                    "value": {
                        "recordName": "14102C0A-60F2-4457-AC1C-601BC628BF47-184-000000012D225C57",
                        "action": "NONE"
                    },
                    "type": "REFERENCE"
                },
                "comparator": "EQUALS"
            }
        },
        "zoneID": {
            "zoneName": "_defaultZone"
        }
    }
    

    【讨论】:

    • 这对我很有帮助,因为我一开始就找不到关于如何使用 CKWS 创建 CKReference 的文档。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2017-03-11
    • 1970-01-01
    • 2010-11-15
    • 2012-08-11
    • 2023-04-10
    • 1970-01-01
    • 1970-01-01
    • 2014-02-03
    相关资源
    最近更新 更多