2011-12-06 15 views
6

Tengo un sql:¿Cómo usar count distinct en pymongo?

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

Cómo lograr este sql en pymongo?

+0

Comience leyendo la documentación de MongoDB. No puede convertir declaraciones SQL a ciegas en consultas MongoDB ni debe esperar que SO lo haga por usted. –

Respuesta

2

que he encontrado este recurso a ser muy útil cuando se trabaja en hacer conversiones desde SQL a Mongo SQL to Mongo Mapping Chart

En este caso se estaría buscando como algo similar a:

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

Puesto que usted tiene una lógica un poco más compleja aquí necesita usar la función de reducción. Honestamente, deberías leer un poco más sobre esto para entender completamente lo que está sucediendo aquí. Map Reduce

4

Puede realizar este tipo de consultas con el controlador de pymongo utilizando la función .group().

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

Este grupo juntos valores distintos de "campo1" y incrementar un contador para registrar el número de ocurrencias de cada uno.