我有一个Mongo集合,我需要将一组对象移动到一个单独的集合中。
该集合采用以下格式:
{
_id: ObjectId("..."),
name: "...",
description: "...",
widgets: [
{ someprop: somevalue },
{ someprop: somevalue }
]
}
我想将对象数组展开到一个单独的集合中。
根据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"}
]);
错误:
Error: command failed: {
"errmsg" : "exception: Unrecognized pipeline stage name: '$out'",
"code" : 16436,
"ok" : 0
} : aggregate failed at src/mongo/shell/assert.js:13
答案 0 :(得分:11)
确保您使用的是最新版本。 $ out是2.6中的新功能,使用2.6.2非常适合我!