如何使用 CloudKit.js 查询 nil 值?

How do I query for nil values with CloudKit.js?

使用 CloudKit.js,我如何构造一个查询来匹配字段为 nil 的项目?我尝试过的每个排列都失败了——要么它明显匹配字符串值(即 "null" 或 "nil"),要么如果我实际上尝试传递 'null'.[=12 它会抛出错误=]

有什么想法吗? None 以下作品。

filterBy: [{
        fieldName: 'customerNumber',
        comparator: 'EQUALS',
        fieldValue: { value: "nil" }
}]

filterBy: [{
        fieldName: 'customerNumber',
        comparator: 'EQUALS',
        fieldValue: { value: null }
}]

filterBy: [{
        fieldName: 'customerNumber',
        comparator: 'EQUALS',
        fieldValue: { value: "null" }
}]

filterBy: [{
        fieldName: 'customerNumber',
        comparator: 'EQUALS',
        fieldValue: { value: "" }
}]

我认为 CloudKit 中没有任何选项可以查询 nil 值。也不是来自本机代码。我尝试了很多谓词,但似乎都没有用。

您必须知道 CloudKit 是一个键值存储。当值为 nil 时,键将不会出现在记录中。没有查询不存在的键的选项。

我最接近好的解决方案是使用格式为 "NOT myField => ''" 的谓词抱歉,不知道 .js 的格式

CloudKit CKQuery documentation 中没有提到 nil 字段。

documentation for NSPredicates 中有 nil 值的样本。

但已经很清楚 CloudKit 只实现了 NSPredicate 的一部分可能性(参见 CKQuery class 参考)

我认为处理此问题的最佳方法是不 using/depending 处理 nil 值。如果您确实需要检查一些 nil 状态,那么您可以添加一个额外的字段来表示该状态。