Vert.x MongoClient错误“命令失败,错误9:'cursor'选项是必需的,但聚合...除外”

时间:2018-12-04 07:25:50

标签: java mongodb vert.x

  • Vert.x版本:3.4.1
  • MongoDB服务器版本:4.0.2

在运行聚合查询时,出现以下错误:

  

命令失败,并显示错误9:服务器localhost:27017上的'cursor'选项是必需的,但带有说明参数的聚合除外。完整的响应为{“ ok”:0.0,“ errmsg”:“'cursor'选项是必需的,除了带有explain参数的聚合”,“ code”:9,“ codeName”:“ FailedToParse”}

示例代码如下:

JsonObject command = new JsonObject().put("aggregate", "someCollection").put("pipeline", jsonArray);
    client.runCommand("aggregate", command, res -> {
        if (res.succeeded()) {
            JsonArray resArr = res.result().getJsonArray("result");
            future.complete(resArr);
            } else {
                future.fail(res.cause());
                }
        });

我该怎么办才能在vert.x MongoClient中解决此问题?

1 个答案:

答案 0 :(得分:0)

该错误似乎与vert.x客户端无关,但与您的查询有关。我对MongoDB并不是很熟悉,但是我认为您需要根据MongoDB的错误消息在cursor中添加一个JsonObject属性。

Thisthis可以帮助您初始化查询的游标属性。

您可能应该在mongodb cli上直接测试JSON,以重现此错误并在实施之前修正查询。