Mongo 2.6.1 - 无法识别的管道阶段名称:'$ out'

dr3*_*r3x 7 mongodb

我有一个Mongo集合,我需要将一组对象移动到一个单独的集合中.

该集合采用以下格式:

{
    _id: ObjectId("..."),
    name: "...",
    description: "...",
    widgets: [
       { someprop: somevalue },
       { someprop: somevalue }
    ]
}
Run Code Online (Sandbox Code Playgroud)

我想将对象数组展开到一个单独的集合中.

根据http://docs.mongodb.org/manual/reference/operator/aggregation/out/上的 $ out文档,我应该能够使用运算符来创建一个新的集合.

以下Mongo shell命令中的前两个操作用于将数组展开到列表中,但是当我添加$ out操作时它会失败:

db.mytable.aggregate([
    { $project : {_id: 0, datasets : 1}},
    { $unwind : "$widgets"}, 
    { $out: "widgets"}
]);
Run Code Online (Sandbox Code Playgroud)

错误:

Error: command failed: {
"errmsg" : "exception: Unrecognized pipeline stage name: '$out'",
"code" : 16436,
"ok" : 0
} : aggregate failed at src/mongo/shell/assert.js:13
Run Code Online (Sandbox Code Playgroud)

sal*_*ina 11

确保您使用的是最新版本.$ out是2.6中的新功能,使用2.6.2非常适合我!

  • 这应该是评论而不是答案. (2认同)