当前位置: 首页 > 知识库问答 >
问题:

垂直。x MongoClient error“命令失败,错误9:'需要'cursor'选项,聚合除外…”

韦安顺
2023-03-14
  • 垂直。x版本:3.4.1
  • MongoDB服务器版本:4.0.2

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

命令失败,出现错误9:“需要“cursor”选项,但在服务器localhost:27017上“aggregate with The explain”参数除外。完整响应为{“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个答案

苏宜人
2023-03-14

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

这可能有助于初始化查询的游标属性。

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

 类似资料:
  • 问题内容: 执行以下聚合管道: 引发以下异常: 我不明白这里的光标选项是什么意思。该选项应在哪里配置? 编辑 这是一个示例用户文档 问题答案: 从文档。 MongoDB 3.4不建议使用不带游标选项的聚合命令,除非管道包括解释选项。使用聚合命令以内联方式返回聚合结果时,请使用默认批处理大小游标:{}指定游标选项,或在游标选项游标:{batchSize:}中指定批处理大小。 你可以通过与在春季蒙戈2

  • 我使用这个查询来查找状态(“Isactive”:false);true或false;还根据状态查找年龄,最后一次计数总额 跟随错误 聚合失败 _geterrorwithcode@src/mongo/shell/utils.js:25:13

  • 问题内容: 我试图使用Spring Data MongoDB 3.6-rc4执行聚合操作。 但是在运行查询时出现以下错误 提前致谢!! 问题答案: MongoDB在3.6中更改了聚合命令的工作方式。聚合现在需要一个游标。我们改编了Spring Data MongoDB 2.1, 但没有改编以前的版本。 聚合必须通过集合的方法来调用,而不是直接调用命令。这也是我们没有回溯变更的原因。不再被调用,我们

  • 问题内容: 即使遇到以下错误,我仍在使用最新版本的mongodb 3.6 … 问题答案: 谢谢@Neil Lunn 更新猫鼬。5.0之前的Mongoose版本与MongoDB 3.6不正确匹配。MongoDB 3.6将聚合API从“ cursor optional”更改为“ cursor only”,并且较旧的mongoose版本通过尝试使用不建议使用的方法来请求数组来打破这一点。

  • 我正在尝试使用id字段在我的碎片集合中查找重复项,这是这种模式- 我使用了下面的查询,但收到了“异常:超出$group的内存限制,但不允许外部排序。通过allowDiskUse:true选择加入。”错误,尽管我在查询中使用了“allowDiskUse:true”。 有没有其他方法可以得到我想要的,或者我应该在上面的查询中传递其他东西?谢谢。

  • 当我运行tns run android时,我正在尝试构建一个nativescript应用程序。我遇到以下错误: 失败:生成失败,出现异常。 > 错误:任务执行失败:app:transformNativeLibsWithStripDebugSymbolForDebug。 启动进程“command”C:\Users\Natasha\AppData\Local\Android\Sdk\ndk bundl