2011-12-06 19 views
6

Ho uno sql:Come utilizzare il conteggio distinto in pymongo?

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

Come ottenere questo sql in pymongo?

+0

Iniziare leggendo la documentazione di MongoDB. Non è possibile convertire ciecamente le istruzioni SQL in query MongoDB, né si dovrebbe aspettare che SO lo faccia per te. –

risposta

2

ho trovato questa risorsa per essere molto utile quando si lavora sul fare conversioni da SQL a Mongo SQL to Mongo Mapping Chart

In questo caso si sarebbe guardando come qualcosa di simile a:

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

Dal momento che hai una logica un po 'più complessa qui è necessario utilizzare la funzione di riduzione. Onestamente dovresti leggere un po 'di più in questo per capire esattamente cosa sta succedendo qui. Map Reduce

4

È possibile eseguire questo tipo di query con il driver pymongo utilizzando la funzione .group().

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

Questo gruppo insieme valori distinti di "field1" e incrementare un contatore per tenere traccia del numero di occorrenze di ciascuno.

Problemi correlati