0
我需要用戶類包含字符串的地圖,我在api中看到了MongoMapField,所以我使用它,因爲它看起來合適。這裏是我的代碼:在mongo中創建可變映射的最佳方式是什麼?
class User private() extends ProtoAuthUser[User] with ObjectIdPk[User] {
def meta = User
object oauth extends MongoMapField[String, String]("") {
def setToken(provider: String, token: String) {this.value += (provider -> token) }
def getToken(value: String) = {
if(!this.value.isEmpty) Full(this.value.get(value) match {
case Some(value) => value
case None => ""
})
else Empty
}
}
}
setToken在這種情況下不起作用,因爲MongoMapField是不變的(從我的假設)和下面的代碼無法正常工作或:
def setToken(provider: String, token: String) { this.value = this.value + (provider -> token) }
有誰知道什麼是創建/更新mongo中附加到用戶的字符串映射的最佳方法是什麼?
感謝=)
這個工作只是完美!謝謝!只需將MongoMapField [String,String]修改爲MongoMapField [User,String]即可。如果我要使用OauthInfo是案例類的MongoMapField [User,OauthInfo],該怎麼辦?它似乎工作正常,但是當我User.currentUser.open _ !.保存時,它不保存。你知道這是爲什麼嗎? – user646658 2012-02-02 21:31:03
MongoMapField不支持大小寫類。不過,您可以通過覆蓋asDBObject和fromDBObject函數來使其工作。 – 2012-02-03 10:20:40