Home

Tags

MongoDB подсчет суммы

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