2010-05-27 mongodb
Пример группировки
# coding: utf8
from pymongo import Connection
from pymongo.code import Code
con = Connection()
con.drop_database('test')
db = con.test
db.posts.insert({ 'name':'linux', 'col':3, 'active':1 })
db.posts.insert({ 'name':'mac', 'col':2, 'active':0 })
db.posts.insert({ 'name':'linux', 'col':3, 'active':1 })
db.posts.insert({ 'name':'win', 'col':4, 'active':0 })
db.posts.insert({ 'name':'unix', 'col':5, 'active':1 })
db.posts.insert({ 'name':'linux', 'col':6, 'active':1 })
db.posts.insert({ 'name':'unix', 'col':7, 'active':1 })
db.posts.insert({ 'name':'mac', 'col':8, 'active':1 })
res = db.posts.group(
key = { 'name':True },
condition = { 'active':1 },
reduce = 'function(obj,prev) { prev.sum += obj.col; prev.count++; }',
initial = { 'sum':0, 'count':0 },
finalize = 'function(out) { out.avg = out.sum / out.count; }'
);
for i in res:
print i