2015-04-06 57 views
2

我想在某些日期之間對MongoDB中不同的值進行計數。如何在MongoDB中統計不同的值?

喜歡的東西在SQL如下:

select distinct(count(iid)) 
from collection 
Where date > 2015-04-03 and date < 2015-04-04 

我已經成功地運行在MongoDB的下面的查詢,但是,這種返回總數(不重複值的計數):

db.m_2015_04.find(
{ "_timestamp" : { "$gte" : ISODate("2015-04-03T00:00:000Z"), "$lt" : ISODate("2015-04-03T23:59:000Z") }}) 
.count() 
+0

不幸的是,這個結果有錯誤。 – 2015-04-06 13:56:55

回答

2

以下情況如何?

db.m_2015_04.distinct('iid', { "_timestamp" : { "$gte" : ISODate("2015-04-03T00:00:000Z"), "$lt" : ISODate("2015-04-03T23:59:000Z") }}).length 
+0

謝謝,它的工作! – 2015-04-06 14:00:21

+0

只是意識到,如果不同的值超過16 MByte,那麼截然不同。在這種情況下,您必須使用聚合框架或地圖縮小作業。 – nickmilon 2015-04-06 15:05:04