2013-08-02 123 views
1

我想在Django中使用聚合进行查询,它可以正常使用本地计算机,但不能在服务器中使用。Mongo聚合在pymongo中不起作用

在这两种机器,pymongo安装在Python的虚拟环境:

pip freeze | grep mongo 
pymongo==2.5.2 

我也能得到两个机器与find()插入数据的方法:) conn.firmalar.searchlogger.find(

但是聚合方法在我的本地工作,但不是在服务器上,即使安装的所有东西都是一样的。当我尝试在服务器上运行它时,出现此错误:

import pymongo 
conn = pymongo.Connection() 
search = conn.firmalar.searchlogger.aggregate([{"$group": {"_id": "$what", "count": {"$sum": 1}}}]) 

    OperationFailure at /admin/weblog/ 
command SON([('aggregate', u'searchlogger'), ('pipeline', [{'$group': {'count': {'$sum': 1}, '_id': '$what'}}])]) failed: no such cmd: aggregate 

    /home/cem/env/firmalar/local/lib/python2.7/site-packages/pymongo/collection.pyc in aggregate(self, pipeline) 
    1059           self.secondary_acceptable_latency_ms), 
    1060           slave_okay=self.slave_okay, 
-> 1061           _use_master=use_master) 
    1062 
    1063  # TODO key and condition ought to be optional, but deprecation 


/home/cem/env/firmalar/local/lib/python2.7/site-packages/pymongo/helpers.pyc in _check_command_response(response, reset, msg, allowable_errors) 
    145    if code in (11000, 11001, 12582): 
    146     raise DuplicateKeyError(errmsg, code) 
--> 147    raise OperationFailure(msg % errmsg, code) 
    148 
    149 

回答