这个错误是由于 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 代码

我用的依赖是 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

原文地址: https://www.cveoy.top/t/topic/hB44 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录