... после того, как он извлекает все это из MongoDB и передает его по сети?
То, что я пытаюсь спросить, - в традиционном сценарии БД, COUNT, SUM и т.д. выполняются в конце БД. Предоставляет ли PyMongo все записи по сети, а затем выполняет агрегацию?
Например, я смотрю на запрос учебник PyMongo: posts.find({"author": "Mike"}).count()
Метод count() pymongo.cursor.Cursor фактически отправляет команду "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}