Собирает ли драйвер PyMongo данные - PullRequest
1 голос
/ 01 июня 2011

... после того, как он извлекает все это из MongoDB и передает его по сети?

Я пытаюсь спросить - в традиционном сценарии БД СЧЕТ, СУММА и т. Д. Выполняются вконец БД.Передает ли PyMongo все записи по сети, а затем выполняет агрегацию?

Например, я смотрю на запрос из Руководства PyMongo : posts.find({"author": "Mike"}).count()

1 Ответ

3 голосов
/ 01 июня 2011

Метод 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}
...