我正在使用Mongo聚合框架,假设我有这样的集合结构
{
{
_id: ObjectId(123)
name: john,
age: 30
},
{
_id: ObjectId(456)
name: moore,
age: 45
},
{
_id: ObjectId(789)
name: carl,
age: 30
}
}
例如,我只想获取唯一的年龄文档,结果应如下所示
{
{
_id: ObjectId(123)
name: john,
age: 30
},
{
_id: ObjectId(456)
name: moore,
age: 45
},
}
以上结果剔除了同年龄段的文献,取其中任何一份文献。
如何根据年龄对集合进行这种设置操作,这样使用mongo聚合只能得到唯一的年龄文档集合
1条答案
按热度按时间mwkjh3gx1#
1.$group将保留单个文档的年龄。由于您希望保留文档的结构,请使用$$ROOT将整个文档分配给一个字段。
这个阶段的输出将是这样的。
1.$replaceRoot会用你想要的替换上一阶段的整个文档。在本例中,它是我们分配给“firstDocument”字段的内容。
MongoPlayground