我有一个聚合查询结果的集合,并且包含具有以下字段结构的文档:
{
_id : { data1, data2 },
data3
}
我想把它转换为" flat"像这样的结构:
{
data1,
data2,
data3
}
实现这一目标的最佳方法是什么?目前,我想到了另一个聚合查询,但有更简单的方法吗?
答案 0 :(得分:0)
_id
字段是不可变的,因此您无法更改它。但是,您可以通过在聚合查询的末尾添加以下_id
子句来显示$project
中的子文档中的值。
{ $project: { "data1" : "$_id.data1", "data2": "$_id.data2", "data3": 1 } }
所以你的最终聚合查询看起来像这样:
db.collection.aggregate([ ...,
{ "$project": { "data1": "$_id.data1",
"data2": "$_id.data2",
"data3": 1 }
}
]);
这将为您提供您正在寻找的扁平结构。