2010-05-28 mongodb
В данном примере показано 2 метода получения суммы по атрибуту: через группировку и выполнение ф-ии подсчета на стороне сервера с помощью java-script
# coding: utf8
from pymongo import Connection
from pymongo.code import Code
con = Connection()
con.drop_database('test')
db = con.test
db.posts.insert({ 'shows':1 })
db.posts.insert({ 'shows':3 })
db.posts.insert({ 'shows':4 })
db.posts.insert({ 'shows':7 })
print db.posts.group(
key = {},
condition = {},
initial = {'sum':0},
reduce = 'function(doc, out){ out.sum+=doc.shows }',
);
print db.eval(''' function() {
var sum = 0;
db.posts.find().forEach(
function(obj) {
sum += obj.shows;
} )
return sum; } ''')
[ {u'sum': 15.0} ]
15.0