gpt4 book ai didi

java - 更新到 mongo 3.0

转载 作者:行者123 更新时间:2023-12-02 04:28:31 24 4
gpt4 key购买 nike

我正在开发 mongo 2.X,现在已更新到 Mongo 3.X,还将 java mongodb 客户端更新到 3.0.3,我在 mongo 服务器上有需要执行的 js,并且 js 需要两个对象参数这在以前的版本中很容易完成,如下所示:

DB database = mongoclient.getDb(db);
CommandResult cr = database.doEval(js, query, collection); // js is String, query is BasicDBObject and collection is List<String>

需要帮助来运行相同的东西,但现在我得到的是 MongoDatabase(因为 getDB 已被弃用)而不是 DB,并且 doEval 被 runCommand 替换

最佳答案

您实际上可以查看原始 doEval 方法的代码来弄清楚如何执行此操作,它看起来像:

public CommandResult doEval(final String code, final Object... args) {
DBObject commandDocument = new BasicDBObject("$eval", code).append("args", Arrays.asList(args));
return executeCommand(wrap(commandDocument));
}

这意味着您需要执行以下操作:

Document commandDocument = new Document("$eval", code).append("args", Arrays.asList(args));
return runCommand(commandDocument);

请注意,实际上并不建议从应用程序代码在服务器上运行脚本,最好将其功能转换为 Java 代码,因为驱动程序对此有更有效的支持。

关于java - 更新到 mongo 3.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31829100/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com