我有一个sql:
select field2, count(distinct field1) from table group by field2;
如何在pymongo中实现这个sql?
答案 0 :(得分:5)
您可以使用.group()
函数使用pymongo驱动程序完成这些类型的查询。
db.table.group(["field1"], {}, {"count":0},"function(o, p){p.count++}" )
这会将“field1”的不同值组合在一起,并递增计数器以跟踪每个值的出现次数。
答案 1 :(得分:3)
我发现这个资源在处理从SQL到Mongo的转换时非常有用SQL to Mongo Mapping Chart
在这种情况下,您会看起来像:
db.users.group({key: {age: true},
initial: {count: 0},
reduce: function (obj, prev) { prev.count++;} } )
由于这里有一些更复杂的逻辑,你需要使用reduce函数。老实说,你应该多读一点,以完全理解这里发生了什么。 Map Reduce