mongodb 3.2.18 在管道中使用切片无法识别的管道阶段名称:'$slice'

mongodb 3.2.18 use slice in pipeline Unrecognized pipeline stage name: '$slice'

在mongodb的文档中,"$slice"是在3.2版本中引入的。但是,将我的 mongodb 升级到 3.2 后,我仍然遇到此错误。我还检查了 db.version() 和 mongo --version,它们都是 3.2.18.

编辑 来自评论聚合管道

db.test.aggregate(
    [
        {
            $match : {"keya" : val}, {$slice : ["$mylist", 2] }
        }
    ]
)

这里的问题是 $slice 不能用作聚合管道中的顶级运算符,而只能用作 $project 的一部分。请注意,在 MongoDB 文档中它是 Aggregation Pipeline Operators 的一部分而不是 Aggregation Pipeline Stages.

试试下面的代码:

db.test.aggregate([
    {$match : {"keya" : vala}}, 
    { $project: { keya: 1, myList: { $slice: [ "$myList", 2 ] } } }
])