我正在努力加入mongodb的两张桌子。我从谷歌搜索中了解到mongo中没有连接概念。但是,我们可以通过map reduce来实现这一点。我也是斯卡拉的新手。 我在mongodb有两张桌子。
User
userid
name
Role
userid
permission
我想将两个表中的数据组合起来,如下所示
userid, name, permission
示例数据将
05533, User1, read
05535, User2, read/write
有人可以帮忙在这里添加一些示例scala代码来实现这个地图缩减功能吗?
我尝试了以下代码,这种方法效果很好,但我有数百万条记录,并逐个查找超时。首先从用户表中获取userid,然后尝试查找相应的roleid。
val role = Role.findById(db, userid) match {
case Some(role) => role
case None => Role(
title = "Role Not Found"
)
}
def findById(db: DaoConnection, id:String) : Option[Role] = {
object RoleDAO extends SalatDAO[Role, ObjectId](collection = getCollection(db))
RoleDAO.findOne(MongoDBObject("_id" -> new ObjectId(id)));
}
答案 0 :(得分:0)
不是在scala方面查询,而是按照这种方法解决。
这可能不是一个简单的解决方案,但这是针对这类问题提出的方法之一。