如何在MongoDB中汇总数组文档?
为此,请使用聚合框架。首先让我们创建一个包含文档的集合-
> db.aggregateArrayDemo.insertOne(
{
"_id":100,
"UserDetails": [
{
"UserName": "John",
"UserLoginYear":2010
},
{
"UserName": "Carol",
"UserLoginYear":2019
}
]
}
);
{ "acknowledged" : true, "insertedId" : 100 }以下是在find()方法的帮助下显示集合中所有文档的查询-
> db.aggregateArrayDemo.find().pretty();
这将产生以下输出-
{
"_id" : 100,
"UserDetails" : [
{
"UserName" : "John",
"UserLoginYear" : 2010
},
{
"UserName" : "Carol",
"UserLoginYear" : 2019
}
]
}以下是汇总数组文档的查询-
> db.aggregateArrayDemo.aggregate([
{
$match: { _id: 100 }
},
{
$project: {
Minimum: { $min: "$UserDetails.UserLoginYear" },
Maximum: { $max: "$UserDetails.UserLoginYear" }
}
}
]);这将产生以下输出-
{ "_id" : 100, "Minimum" : 2010, "Maximum" : 2019 }