【发布时间】:2019-11-23 19:50:44
【问题描述】:
我有一个集合 myCol 有很多这样的文档:
{
"_id" : ObjectId("5d2b730470c3190b97c4dab0"),
"key1" : [
{el:"El1"},
{el:"El2"}
]
}
我想使用聚合运算符$unwind 来获取 2 个单独的文档,1 个用于单元素数组,之后我应该将聚合结果保存在新集合中。
如果我使用这个查询一切正常:
db.myCol.aggregate([{$unwind:"$key1"}])
但是当我尝试使用 $out 运算符保存结果时,MongoDB 会返回错误!
查询:db.myCol.aggregate([{$unwind:"$key1"},{$out:"$newMyCol"}])
错误:
QUERY [js] Error: command failed: {
"ok" : 0,
"errmsg" : "Can't $out to special collection: $newMyCol",
"code" : 17385,
"codeName" : "Location17385"
}
$unwind 运算符创建了两个具有相同_id 的文档,这是问题所在吗?我该如何解决这个问题?
【问题讨论】:
-
1) 集合名称不应以
$符号开头。 2) $unwind 运算符创建了 2 个具有相同 _id 的文档,这是问题所在吗?是的
标签: mongodb aggregation-framework