如何计算 MongoDB 中每个字段/键的不同值的数量?
您可以为此使用distinct命令。为了理解这个概念,让我们用文档创建一个集合。使用文档创建集合的查询如下-
> db.distinctCountValuesDemo.insertOne({"StudentFirstName":"John","StudentFavouriteSubject":["C","C++","Java","MySQL","C","C++"]}); { "acknowledged" : true, "insertedId" : ObjectId("5c8a39f193b406bd3df60e07") } > db.distinctCountValuesDemo.insertOne({"StudentFirstName":"Larry","StudentFavouriteSubject":["MongoDB","SQL Server"]}); { "acknowledged" : true, "insertedId" : ObjectId("5c8a3a1193b406bd3df60e08") }
在find()方法的帮助下显示集合中的所有文档。查询如下-
> db.distinctCountValuesDemo.find().pretty();
以下是输出-
{ "_id" : ObjectId("5c8a39f193b406bd3df60e07"), "StudentFirstName" : "John", "StudentFavouriteSubject" : [ "C", "C++", "Java", "MySQL", "C", "C++" ] } { "_id" : ObjectId("5c8a3a1193b406bd3df60e08"), "StudentFirstName" : "Larry", "StudentFavouriteSubject" : [ "MongoDB", "SQL Server" ] }
这是查找每个字段/键的多个不同值的查询-
> db.distinctCountValuesDemo.distinct('StudentFavouriteSubject');
以下是输出-
[ "C", "C++", "Java", "MySQL", "MongoDB", "SQL Server" ]
这是查找数组中不同值长度的查询-
> db.distinctCountValuesDemo.distinct('StudentFavouriteSubject').length;
以下是输出-
6