如何使用CloudKit Web服务基于参考字段进行查询? [英] How can I use CloudKit web services to query based on a reference field?

查看:73
本文介绍了如何使用CloudKit Web服务基于参考字段进行查询?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有两个看上去有点像这样的CloudKit数据对象:

I've got two CloudKit data objects that look somewhat like this:

父对象:

{
    "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服务并根据父对象的引用返回子对象.

I'm trying to write a query to directly access the CloudKit web service and return the Child Object based on the reference of the parent object.

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

My test JSON looks something like this:

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

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

However, I'm getting the following error from CloudKit:

{"uuid":"33db91f3-b768-4a68-9056-216ecc033e9e","serverErrorCode":"BAD_REQUEST",原因":"BadRequestException: 意外的输入}

{"uuid":"33db91f3-b768-4a68-9056-216ecc033e9e","serverErrorCode":"BAD_REQUEST","reason":"BadRequestException: Unexpected input"}

我猜我在查询中有记录字段字典".但是,文档尚不清楚参考对象的外观.

I'm guessing I have the Record Field Dictionary in the query wrong. However, the documentation isn't clear on what this should look like on a reference object.

推荐答案

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

You have to re-create the actual object of the reference. In this particular case, the JSON looks like this:

{
    "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"
    }
}

这篇关于如何使用CloudKit Web服务基于参考字段进行查询?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆