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

mongodb在mongos中使用$OUT返回错误

富勇军
2023-03-14

我有一个包含两个碎片的mongodb集群,每个碎片是一个包含3个节点的复制集,还有一个包含3个节点的配置服务器集群。

除了尝试使用$out运算符在聚合管道的末尾编写集合之外,一切似乎都很正常:

db.getCollection('restaurants').aggregate([
 {$match : {$text : {$search : "steak"}}},
 {$out : "steak_restaurants"}
])

这将返回以下错误:

执行脚本。

错误:assert:command failed:{“ok”:0,“errmsg”:“listindexes failed:{ok:0.0,errmsg:\”not master and slaveok=false\“,代码:13435,codename:\”notmasternoslaveok\“}”,“code”:18631,“codename”:“location18631”}:聚合失败_geterrorwithcode@src/mongo/shell/utils.js:25:13 doassert@src/mongo/shell/assert.js:16:14 19:5@(shell):1:1

错误:command failed:{“ok”:0,“errmsg”:“listindexes failed:{ok:0.0,errmsg:\”not master and slaveok=false\“,代码:13435,codename:\”notmasternoslaveok\“}”,“code”:18631,“codename”:“location18631”}:聚合失败:_geterrorwithcode@src/mongo/shell/utils.js:25:13 doassert@src/mongo/shell/assert.js:16:14 5@(shell):1:1

mongo外壳连接到mongos路由器。如果我对mongod也这样做,这很好。

这个错误表明阅读是从中学开始的,然而,我没有设置任何阅读偏好,我会认为mongos会自己正确地解决小学。有什么想法或见解吗?

共有1个答案

殷宾白
2023-03-14

似乎只有在通过Robo3T执行时才会发生。通过原始shell执行很好。

 类似资料:
  • 问题内容: 我想获取更新的文档。这是我的原始代码,它成功更新但没有返回文档。 我使用了toArray函数,但是这给出了错误“没有提供的回调就不能使用writeConcern”: 有任何想法吗? 问题答案: 只会向自己的回调报告受影响的文档数。 要在修改时检索文档,可以改用(以前称为)。 更新:在mongoDB中执行时,请使用;如果使用mongoose,则可以使用。以上是Node.js驱动程序。 注

  • 我需要向MongoDB插入一个文档并返回新插入的文档。我用了db。集合(“集合名称”)。insertOne(“要插入的数据”)。然后((res)= 错误:未定义ops。 insertOne只返回插入文档的_id,而不是整个文档☹ 但早些时候,它通常返回整个文档。我使用了mongoclient而不是mongoose,在mongoose中它返回整个文档,但我不喜欢使用mongoose。

  • 我正在处理一个需要根据多种条件创建大量标志的数据帧。我使用的是,但现在我遇到了这个错误 为了可复制性和简单性,我只将产生错误的代码部分与使用的列一起共享。正在使用的数据帧: 生成错误的代码: 我似乎仍然有问题后,密码后的.

  • 我试图在Spring Boot中使用MongoDB反应性模板以反应式方式获得更新结果。 问题是更新部分不会执行,因为我没有订阅它,但我真的不知道如何使用反应性范式执行这两个操作并返回一个值。 这就是我正在尝试的: flatMap updateFirst不会发生,因为我没有订阅,但我需要返回UpdateResult,如果我订阅了,我不知道如何返回该值。

  • 问题内容: 我在SpringMVC项目中将新的Java API(JSR 353)用于JSON。 这个想法是生成一些Json数据并将其返回给客户端。我所拥有的控制器看起来像这样: 当我访问它时,我没有得到JSON的预期表示,而是得到了这些: 为什么是这样?到底是怎么回事?以及如何使其正确返回预期的JSON? 问题答案: 当您意识到新的JSR 353 API 没有特殊要求时,答案很简单。相反,在这种情