pymongo нет вывода для запроса - PullRequest
1 голос
/ 17 октября 2011

EDIT: Я несколько разобрал вопрос.

mongo_documents = mongo_collection.find({"medicalObjectId": "269"})
print "\n\n"
for this_document in mongo_documents:
    print this_document

print "-------------------------"

pqr = 269
mongo_documents2 = mongo_collection.find({"medicalObjectId": pqr})
print "\n\n"
for this_document2 in mongo_documents2:
    print this_document2

Моя проблема в том, что работает первый блок кода, где я использую число в качестве ключа в запросе. Но второй блок, где я использую переменную, я не получаю вывод.


Я новичок в питоне и пимонго, поэтому, пожалуйста, потерпите меня.

У меня есть список как; строка = [1, 2, ...., 100]

Я хочу запросить коллекцию mongodb для каждой записи в моем списке. Коллекция имеет формат: collection = {'pk', 'attribute1', 'attribute2', 'attribute3'}

Я хочу вызвать соединение mongodb и перебрать каждую запись в моем списке со строкой [i] = pk и вернуть другие атрибуты в качестве вывода.

т. mongo_documents = mongo_collection.find ({'pk': row [0]}) mongo_documents = mongo_collection.find ({'pk': row [1]}) и т. д.

Код, который у меня есть:

for row in result_set:
    print row[0]
    mongo_documents = mongo_collection.find({'medicalObjectId' : row[0]})
    print mongo_documents
    for this_document in mongo_documents:
        print "----------------------------------"
        print this_document

однако я не получаю вывод. куда я иду не так? если я печатаю документы mongo_documents, я получаю

    <pymongo.cursor.Cursor object at 0xe43150>

1 Ответ

4 голосов
/ 17 октября 2011

Вы можете использовать оператор $ in в mongodb, чтобы извлечь все строки одновременно и выполнить их итерацию.

mongo_documents = mongo_collection.find({ 'medicalObjectId' : { '$in' : result_set } } );
for doc in mongo_documents:
    print mongo_documents

Я не проверял, прокомментируйте ниже, если это не работает.

EDIT

mongo_documents2 = mongo_collection.find({"medicalObjectId": str(pqr)}) 
print "\n\n" 
for this_document2 in mongo_documents2: 
    print this_document2
...