java mongodb eval_从Java调用MongoDB函数

我正在尝试从MongoDB

Java驱动程序调用存储的

JavaScript函数.

我一直在遵循本指南将该函数存储在DB服务器上,我可以从mongo shell调用该函数并返回结果.

但是我无法弄清楚如何在Java中调用相同的函数?

我也试过用这种方法:

public static String callFunction() {

try (MongoClient client = new MongoClient("localhost")) {

com.mongodb.DB db = client.getDB("TestDB");

return db.doEval("echoFunction",3).toString();

}

}

但是当我调用这个方法时,这就是我得到的:

{ "retval" : { "$code" : "function (x) {\n return x;\n}"},"ok" : 1.0}

在这种情况下,我希望得到3号.

上面代码的另一个问题是不推荐使用方法client.getDB().据我所知,调用的新方法是client.getDatabase(),它返回一个MongoDatabase对象,但根据API,没有执行函数的方法.

所以我的问题是:是否可以从Java在数据库服务器上执行存储的JavaScript函数并获取该函数的结果?如果有可能的话,我会对如何做到这一点表示感谢?

谢谢.

编辑:

“It seems like getNextSequence is a function written in the mongo

javascript shell. Neither the database (mongod) nor the Java side

knows this function exists and neither is able to interprete the

Javascript code the function contains. You will have to reimplement it

in Java. “

我试图实现的函数比上面的例子复杂一点 – 它应该返回一个文档集合,并且似乎没有使用db.doEval方法.

所以我认为评论是正确的?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值