...在从MongoDB中检索所有内容并通过网络传输之后?
我想要问的是 - 在传统的DB场景中,COUNT,SUM等在DB端执行。 PyMongo是否通过网络传输所有记录,然后进行聚合?
例如,我正在查看来自PyMongo's tutorial的查询:posts.find({"author": "Mike"}).count()
答案 0 :(得分:3)
pymongo.cursor.Cursor的count()方法实际上向服务器发送'count'命令,该命令只返回计数,而不是文件。你可以自己做同样的事情:
>>> db = c.foo
>>> for doc in db.things.find(): print doc
...
{u'_id': ObjectId('4de671821121812a0087101b'), u'foo': u'bar'}
{u'_id': ObjectId('4de671ea1121812a0087101c'), u'buzz': u'baz'}
>>> db.command('count', 'things', query={'foo': 'bar'})
{u'ok': 1.0, u'n': 1.0}