繁体   English   中英

在 mongo 中需要使用 scala 的 map reduce 函数

[英]Need a map reduce function in mongo using scala

我正在努力在 mongodb 中加入两个表。 我从谷歌搜索中了解到,mongo 中没有连接概念。 但是,我们可以通过执行 map reduce 来实现这一点。 我也是 Scala 的新手。 我在 mongodb 中有两个表。

User
    userid
    name
Role
    userid
    permission

我想结合来自两个表的数据来表示如下

userid, name, permission

样本数据将是

05533, User1, read
05535, User2, read/write

任何人都可以帮忙在此处添加一些示例 Scala 代码以实现此地图缩减功能吗?

我在下面的代码中尝试了这个效果很好,但是我有数百万条记录并且一一查找超时。 首先从user表中获取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)));
  }

我没有在 Scala 端查询,而是按照这种方法来解决。

  1. 查询用户表以获取scala中的所有用户详细信息
  2. 查询角色表以获取scala中的所有角色
  3. 在客户端,将用户映射到角色以获得所需的输出。

这可能不是微不足道的解决方案,但这是针对此类问题建议的方法之一。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM