2016-11-17 34 views
0

我有一個問題,獲取具有多個[String:Int]值的列的對象。在我的情況下,我正在存儲用戶可以喜歡或不喜歡的消息。該消息對象具有列likes,其包含存儲userID等值(+ 1/-1)的Dict[String, Int]。 在後端,它看起來像:解析&Swift:具有多個鍵的列

"likes": { 
    "123": 1, 
    "456": -1, 
    "789": 1 
}, 

我能得到的結果,直到使用一個星期前:

query.whereKey("likes." + userID, equalTo: 1) 

但不幸的是,我發現了錯誤信息:

[錯誤]:無效鍵名:likes.123(代碼:105,版本:1.12.0)

即使它在幾天前工作。

好的,也許我還不夠清楚。我試圖獲取用戶以前喜歡的所有消息。因此,我想選擇「likes」列中包含userID的所有消息。

該類被稱爲「消息」具有屬性「喜歡」,該屬性再次包含字典[用戶ID,值]。完整的查詢看起來是這樣的:

let query = Message.query()!

query.whereKey("likes." + user, equalTo: 1)

,並在後端的對象看起來是這樣的:

{"_id": "123456789", 
"message": "Test", 
"likes": { "123": 1, "456": -1, "789": 1 } 
} 

我希望你能幫助:)

回答

0

你正試圖獲得likes.的值,但實際上您的密鑰是likes,請刪除dot從您的代碼。

修改後的代碼:

query.whereKey("likes", equalTo: 1) 

謝謝:)

+0

感謝您的答覆,但如果** **點是刪除,然後我仍然得到同樣的錯誤信息:「[錯誤]:無效的密鑰名稱:likes123(代碼:105,版本:1.12.0)「 – vid

+0

oops查看上面更新的代碼。 –

+0

這裏'likes'是一個對象,如果您要訪問的'123'在喜歡的對象,你需要使用這樣的'讓值值= likes.123' –