【问题标题】:Unrecognized pipeline stage name: '$sample'无法识别的管道阶段名称:'$sample'
【发布时间】:2016-11-09 15:19:18
【问题描述】:

当我在 Robomongo 中运行这个聚合管道时

db.getCollection('xyz').aggregate([{$match: {tyu: "asd", ghj: "qwe"}},
{$sample: {size: 5}}])

我收到此错误:

assert: command failed: {
"errmsg" : "exception: Unrecognized pipeline stage name: '$sample'",
"code" : 16436,
"ok" : 0

我使用的是 mongodb 3.2.6 版,因为从 3.2 开始支持 $sample。 (https://docs.mongodb.com/manual/reference/operator/aggregation/sample/#pipe._S_sample)

我对为什么会收到此错误消息感到有些困惑。

也许我只是错过了一些小东西。

谢谢

【问题讨论】:

  • 看看这个question的cmets,可能对你有帮助。
  • 谢谢。在 shell version() 显示 3.2.6 但 db.version() 显示 3.0.6。

标签: mongodb aggregation-framework robo3t


【解决方案1】:

如问题的 cmets 所述。 Mongo 客户端的版本是 3.2.6,但 Mongo db 的版本是 3.0.6。

我在 shell 中使用version() 来获取客户端的版本和 db.version() 获取数据库版本。

ver 3.0.6 太低,无法支持 $sample,如 mongo 文档中所述 https://docs.mongodb.com/manual/reference/operator/aggregation/sample/#pipe._S_sample

【讨论】:

    猜你喜欢
    • 2021-02-10
    • 2019-09-01
    • 2020-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-04
    • 1970-01-01
    相关资源
    最近更新 更多