2012-05-20 32 views
1

我有一個包含用戶字段的文檔的MongoDB數據庫。這些文檔如下所示:在MongoDB中計數一組值

{"_id" : ObjectId("4f98a564590f22a8b13e7df0"), "user" : ['pete', 'joe', 'sally'] ... } 

{"_id" : ObjectId("4f981426590f22a8b13e6b62"), "user" : ['tim', 'joe', 'sam'] ... } 

如何構建一個查詢以統計數據庫中所有用戶的集合。對於上述兩個文檔,查詢將返回5的計數。

回答

3

您可以使用distinct()函數;這是MongoDB提供的彙總數據的功能之一:

> db.test.insert({ "user": ["pete", "joe", "sally"]}) 
> db.test.insert({ "user": ["tim", "joe", "sam"]}) 
> db.test.find() 
{ "_id" : ObjectId("4fb933d5e5d47740efd09ae4"), "user" : [ "pete", "joe", "sally" ] } 
{ "_id" : ObjectId("4fb933e9e5d47740efd09ae5"), "user" : [ "tim", "joe", "sam" ] } 
> db.test.distinct("user") 
[ "joe", "pete", "sally", "sam", "tim" ] 
> db.test.distinct("user").length 
5 
+0

謝謝!這個例子非常感謝。 – turtle