我用的依赖是 orgmongodbmongo-java-driver31211为什么会报错 no such command $eval on server localhost27017 The full response is ok 00 errmsg no such command $eval code 59 codeName CommandNotFound
这个错误是由于 MongoDB 服务器版本不支持 $eval 命令导致的。在 MongoDB 4.2 版本之前,$eval 命令已被废弃,并在 4.2 版本中完全删除。
您使用的是 mongo-java-driver 版本 3.12.11,如果您的 MongoDB 服务器版本低于 4.2,那么 $eval 命令将不可用,因此会报错。
解决方法是升级 MongoDB 服务器到 4.2 版本或更高版本。或者,如果您需要在较低版本的 MongoDB 服务器上执行 JavaScript 代码,可以考虑使用 ScriptOperations 接口来代替 $eval 命令。
以下是使用 ScriptOperations 接口执行 JavaScript 代码的示例:
import com.mongodb.MongoClient;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.ScriptOperations;
public class Main {
public static void main(String[] args) {
// 连接到 MongoDB 服务器
MongoClient mongoClient = new MongoClient("localhost", 27017);
// 获取数据库
MongoDatabase database = mongoClient.getDatabase("your_database");
// 获取 ScriptOperations 接口
ScriptOperations scriptOps = database.getScriptOperations();
// 执行 JavaScript 代码
Object result = scriptOps.eval("your_javascript_code");
// 处理结果
System.out.println(result);
// 关闭连接
mongoClient.close();
}
}
请确保将 "your_database" 替换为您实际使用的数据库名称,并在 "your_javascript_code" 处填写您要执行的 JavaScript 代码
原文地址: https://www.cveoy.top/t/topic/hB44 著作权归作者所有。请勿转载和采集!