无法识别的管道阶段名称:'$ sample'

时间:2016-07-07 10:30:17

标签: mongodb aggregation-framework robo3t

当我在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 ver 3.2.6,因为从3.2开始支持$ sample。 (https://docs.mongodb.com/manual/reference/operator/aggregation/sample/#pipe._S_sample

我有点困惑,为什么我收到此错误消息。

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

由于

1 个答案:

答案 0 :(得分:3)

正如问题的评论所述。 Mongo客户端的版本为3.2.6,但Mongo db的版本为3.0.6。

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

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