MongoDB聚合$ slice以获取数组的长度
为此,请使用$project,然后使用$size来获取长度。首先让我们创建一个包含文档的集合-
> db.demo382.insertOne( ... { ... ... "Name" : "David", ... "details" : [ ... { ... "SubjectName":"MySQL" ... }, ... { ... "SubjectName":"MongoDB" ... }, ... { ... "SubjectName":"Java" ... } ... ] ... ... } ... ); { "acknowledged" : true, "insertedId" : ObjectId("5e5b5e1c22064be7ab44e7f0") }
在find()
方法&Minus;的帮助下显示集合中的所有文档。
> db.demo382.find().pretty();
这将产生以下输出-
{ "_id" : ObjectId("5e5b5e1c22064be7ab44e7f0"), "Name" : "David", "details" : [ { "SubjectName" : "MySQL" }, { "SubjectName" : "MongoDB" }, { "SubjectName" : "Java" } ] }
以下是汇总$slice并获取长度的查询-
> db.demo382.aggregate([ ... { "$match": { "Name": "David" } }, ... { "$project": { "count": { "$size": "$details" }}} ... ])
这将产生以下输出-
{ "_id" : ObjectId("5e5b5e1c22064be7ab44e7f0"), "count" : 3 }