scala - 使用 Casbah/Scala 在 MongoDB 上执行自定义函数

标签 scala mongodb casbah

我使用 MongoDB 的命令行客户端在 MongoDB 中定义了一个函数。

function something(){...}

我想知道如何使用 Scala 中的 casbah 执行自定义 MongoDB 函数。

有什么建议吗?

谢谢

最佳答案

有几种方法可以在服务器上运行任意 JavaScript 代码。您可以将其作为字符串提供 客户端发送到服务器进行评估,或者在服务器上安装该功能 首先,如此处记录的: http://docs.mongodb.org/manual/core/server-side-javascript/

服务器端函数按数据库注册在一个名为 system.js 的集合中。

无论哪种方式,您都可以使用 db.eval() 命令来调用您的代码,如下所示:

/* Call like so:
     evalJavascript(myDB, "function (oid) { return coll.find({_id: oid}); }", someObjectId)
*/
def evalJavascript(db:MongoDB, func: String, args: String*): Validation[String, Object] = {
  val result = db.command(Map(
    "eval" -> func,
    "args" -> args.toList
  ));

  if (result.ok) {
    result.get("retval").success
  } else {
    result.getErrorMessage().failure
  }
}

关于scala - 使用 Casbah/Scala 在 MongoDB 上执行自定义函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10159475/

相关文章:

java - 从java搜索时Mongo Id被_id覆盖

mongodb - 如何使用golang在mongodb中findAndModify一条记录?

scala - 用于新 Scala 项目的 NoSQL(例如 MongoDB)或 RDMS(例如 PostgreSQL)?

Scala:过滤器强制评估整个流

string - 从字符串列表中删除字符

java - java Guava 和 Scala 不可变列表串联的区别

scala - scanLeft 的非严格 View

javascript - dbs中只有一个文档 - 如何更新它?

Scala 应用超出 Heroku 内存配额