我在获取具有多个[String:Int]值的列的对象时遇到问题。在我的情况下,我存储了一个用户可以喜欢或不喜欢的消息。消息对象具有列likes
,其中包含存储Dict[String, Int]
等值(+ 1 / -1)的userID
。
在后端看起来像:
"likes": {
"123": 1,
"456": -1,
"789": 1
},
我能够在一周前使用以下结果获得结果:
query.whereKey("likes." + userID, equalTo: 1)
但不幸的是我收到了错误消息:
[错误]:无效的密钥名称:likes.123(代码:105,版本:1.12.0)
即使几天前它正在运作。
好吧,也许我还不够清楚。我试图获取用户之前喜欢的所有消息。因此,我想在"喜欢"中选择包含userID的所有邮件。列。该课程被称为" message"有一个属性"喜欢"它再次包含一个Dict [UserID,Value]。完整查询如下所示:
let query = Message.query()!
query.whereKey("likes." + user, equalTo: 1)
并且后端中的对象如下所示:
{"_id": "123456789",
"message": "Test",
"likes": { "123": 1, "456": -1, "789": 1 }
}
我希望你能帮忙:)。
答案 0 :(得分:0)
您正试图获取likes.
的值,但实际上您的密钥为likes
,请从代码中删除点。
您修改的代码:
query.whereKey("likes", equalTo: 1)
感谢:)