我无法正确检索BSONDocument

时间:2015-03-05 05:58:08

标签: scala bson reactivemongo

我花了3个小时的时间,并没有成功尝试检索具有所有属性的BSONDocument。我不知道为什么我只获得第一个属性......其他属性在哪里?

我写了以下测试

describe("Testing reactive map user") {
    it(" convert an user to BSONDocument") {

        val basicProfile = BasicProfile("1", "1", Option("pesk"), Option("pesk"),
            Option("pesk pesk"), Option("pesk@gmail.com"), Option("url"),
            AuthenticationMethod.UserPassword, Option(new OAuth1Info("token", "secret")),
            Option(new OAuth2Info("token", Option("secret"))),
            Option(new PasswordInfo("hasher", "password", Option("salt"))))

        val user = User(Option(BSONObjectID.generate), basicProfile, List(), "31.55, 53.66", List[User](), Option(DateTime.now))

        val result = User.UserBSONWriter.write(user)

        assert(result.getAs[String]("providerId") == "1")
    }
}

UserBSONWriter

implicit object UserBSONWriter extends BSONDocumentWriter[User] {
    def write(user: User): BSONDocument = {
        val doc = BSONDocument(
            "_id" -> user.id.getOrElse(BSONObjectID.generate),
            "providerId" -> BSONString(user.basicProfile.providerId),
            "userId" -> BSONString(user.basicProfile.userId))
        println(doc)
        doc
    }
}

我附上了控制台的屏幕截图。我正在尝试获取值providerId,它位于BSONObjectID旁边,但我只能得到第一个属性。

Stream(Success((_id,BSONObjectID("54f862fe010000010001a3fb"))), ?)

如果有人可以帮助我,我会非常感激。我还有其他评论,因为scala的BSON API使用的隐式系统,我感到头疼。找到一些关于这些隐式转换的文档并不是一件容易的事。

println(doc)的内容

BSONDocument(非空)

0 个答案:

没有答案