尝试通过两个Number列对我的查询设置约束:
query?.whereKey("entriesCount", lessThan: "entriesLimit")
但查询返回以下错误:
entriesCount contains number values but got a string (Code: 102, Version: 1.11.0)
在我的数据浏览器中很明显,这些值设置为数值。所以我不确定为什么它会以字符串形式回归。
我通过CloudCode增加了这些值,但我不知道这会如何导致这种类型的混淆。
已编辑以分享完整查询
let query = Contest.queryWithIncludes()
query?.whereKey("timeSlot", equalTo: timeSlot)
query?.whereKey("gameKind", equalTo: gameKind)
query?.whereKey("contestKind", equalTo: contestKind)
query?.whereKey("creator", notEqualTo: User.currentUser()!)
query?.whereKey("entriesCount", lessThan: "entriesLimit")
query?.addAscendingOrder("createdAt")
答案 0 :(得分:1)
在行中:
"entriesLimit"
您正在传递字符串entriesLimit
,而不是它所期望的数字。所以传递一个数字。或者,如果query?.whereKey("entriesCount", lessThan: 5)
恰好是Number类型的变量,则只需将其传递给它。所以:
query?.whereKey("entriesCount", lessThan: entriesLimit)
或
{{1}}