$group 需要一个 _id 数组,但 $out 不会处理它
$group needs an array for _id but $out won't handle it
我需要对数组出现的次数求和。我需要将其输出到一个集合中,但是当我尝试使用 $out
关键字时,它失败并显示 "can't use an array for _id\"
有什么方法可以将小组赛阶段的_id
字段的值投影到一个新的key中并创建一个新的_id
?
db.djnNews_filtered.aggregate([
{$unwind:"$processed_text.headline_trigrams"},
{$group:{_id:"$processed_text.headline_trigrams","num":{$sum:1}}},
{$sort:{"num":-1}}
])
{ "_id" : [ "Reports", "First", "Quarter" ], "num" : 279 }
{ "_id" : [ "ST", "upside", "prevails" ], "num" : 167 }
{ "_id" : [ "First", "Quarter", "Results" ], "num" : 160 }
{ "_id" : [ "Announces", "First", "Quarter" ], "num" : 155 }
db.djnNews_filtered.aggregate([
{$unwind:"$processed_text.headline_trigrams"},
{$group:{_id:"$processed_text.headline_trigrams","num":{$sum:1}}},
{$sort:{"num":-1}},
{$out:"new_collection"}
])
assert: command failed: {
"errmsg" : "exception: insert for $out failed: { connectionId: 3, err: \"can't use an array for _id\", code: 2, n: 0, ok: 1.0 }",
"code" : 16996,
"ok" : 0
} : aggregate failed
在 MongoDB 中,您不能拥有包含 _id
数组的文档。
你能简单地 $project
数组到不同的字段吗?
db.djnNews_filtered.aggregate([
{$unwind:"$processed_text.headline_trigrams"},
{$group:{_id:"$processed_text.headline_trigrams","num":{$sum:1}}},
{$sort:{"num":-1}},
{$project: {trigram: "$_id", count: "$num"}},
{$out:"new_collection"}
])
此外,我不确定您在将文档插入集合之前对其进行排序的目的是什么。如果排序只是为了在您决定将数据添加到集合之前查看数据,您可能需要考虑删除该步骤。
我需要对数组出现的次数求和。我需要将其输出到一个集合中,但是当我尝试使用 $out
关键字时,它失败并显示 "can't use an array for _id\"
有什么方法可以将小组赛阶段的_id
字段的值投影到一个新的key中并创建一个新的_id
?
db.djnNews_filtered.aggregate([
{$unwind:"$processed_text.headline_trigrams"},
{$group:{_id:"$processed_text.headline_trigrams","num":{$sum:1}}},
{$sort:{"num":-1}}
])
{ "_id" : [ "Reports", "First", "Quarter" ], "num" : 279 }
{ "_id" : [ "ST", "upside", "prevails" ], "num" : 167 }
{ "_id" : [ "First", "Quarter", "Results" ], "num" : 160 }
{ "_id" : [ "Announces", "First", "Quarter" ], "num" : 155 }
db.djnNews_filtered.aggregate([
{$unwind:"$processed_text.headline_trigrams"},
{$group:{_id:"$processed_text.headline_trigrams","num":{$sum:1}}},
{$sort:{"num":-1}},
{$out:"new_collection"}
])
assert: command failed: {
"errmsg" : "exception: insert for $out failed: { connectionId: 3, err: \"can't use an array for _id\", code: 2, n: 0, ok: 1.0 }",
"code" : 16996,
"ok" : 0
} : aggregate failed
在 MongoDB 中,您不能拥有包含 _id
数组的文档。
你能简单地 $project
数组到不同的字段吗?
db.djnNews_filtered.aggregate([
{$unwind:"$processed_text.headline_trigrams"},
{$group:{_id:"$processed_text.headline_trigrams","num":{$sum:1}}},
{$sort:{"num":-1}},
{$project: {trigram: "$_id", count: "$num"}},
{$out:"new_collection"}
])
此外,我不确定您在将文档插入集合之前对其进行排序的目的是什么。如果排序只是为了在您决定将数据添加到集合之前查看数据,您可能需要考虑删除该步骤。