Итерация по PyMongo Cursor как пара ключ-значение - PullRequest
13 голосов
/ 08 февраля 2011

Можно ли перебрать пимонго Cursor в виде пары ключ-значение, как dict? Я использую Python 2.6 и Pymongo 1.9.

Я пробовал это:

import pymongo
mongo = pymongo.Connection('localhost')
mongo_db = mongo['my_database']
mongo_coll = mongo_db['my_collection']
cursor = mongo_coll.find()
records = dict([(record_id, record) for record_id, record in mongo_cursor])

Но я получаю ошибку:

ValueError: too many values to unpack

Ответы [ 2 ]

17 голосов
/ 08 февраля 2011

Попробуйте:

records = dict((record['_id'], record) for record in cursor)
0 голосов
/ 09 марта 2015

это функция в Python, которую я использовал для создания JSON-ответа из курсора MongoDB

def build_contacts_cursor(cursor):
    ''' Builds a JSON response for a given cursor
    '''
    response = json.loads('{}')
    response_to_append_to = response['results'] = []

    for idx, bp in enumerate(cursor):
        response_to_append_to.append(bp)

    return response
...