在 MongoDB 中求和数组大小字段的最佳方式是什么?


要对数组大小字段求和,请在 $sum 中使用 $size。让我们制作一个包含文档的集合 −

> db.demo231.insertOne({"Subjects":["MongoDB","MySQL","SQL Server"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e3fc73ff4cebbeaebec5143")
}
> db.demo231.insertOne({"Subjects":["Java","C","C++"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e3fc757f4cebbeaebec5144")
}
> db.demo231.insertOne({"Subjects":["Python","Spring"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e3fc762f4cebbeaebec5145")
}

在集合中使用 find() 方法,显示所有文档 −

> db.demo231.find();

此操作将生成以下输出 −

{ "_id" : ObjectId("5e3fc73ff4cebbeaebec5143"), "Subjects" : [ "MongoDB", "MySQL", "SQL Server" ] }
{ "_id" : ObjectId("5e3fc757f4cebbeaebec5144"), "Subjects" : [ "Java", "C", "C++" ] }
{ "_id" : ObjectId("5e3fc762f4cebbeaebec5145"), "Subjects" : [ "Python", "Spring" ] }

以下是 MongoDB 中求和数组大小字段的查询 −

> db.demo231.aggregate([{'$group': {'_id': '_id', 'ToTalValue': {'$sum': {'$size': '$Subjects'}}}}])

此操作将生成以下输出 −

{ "_id" : "_id", "ToTalValue" : 8 }

更新于: 30-3-2020

850 人浏览

开始你的职业生涯

通过完成课程获得认证

开始吧
广告