2011-12-06 91 views
6

我有一個SQL:如何在pymongo中使用count distinct?

select field2, count(distinct field1) from table group by field2; 

如何實現這個SQL在pymongo?

+0

首先閱讀MongoDB文檔。您不能盲目地將SQL語句轉換爲MongoDB查詢,也不應該期望它爲您做。 –

回答

2

我發現這個資源從SQL做轉換工作,蒙戈SQL to Mongo Mapping Chart

在這種情況下,你會尋求像類似的東西時,是非常有益的:

db.users.group({key: {age: true}, 
initial: {count: 0}, 
reduce: function (obj, prev) { prev.count++;} }) 

既然你有在這裏你需要使用reduce函數一些更復雜的邏輯。說實話,你應該多讀一點,以完全理解這裏發生了什麼。 Map Reduce

4

通過使用.group()函數,您可以使用pymongo驅動程序完成這些查詢。

db.table.group(["field1"], {}, {"count":0},"function(o, p){p.count++}")

這將基團一起的「field1的」不同的值和遞增計數器跟蹤每個的出現的次數。