编辑: 我已经略微提炼了一个问题。pymongo查询没有输出
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
我的问题是,我使用数字作为查询中的关键字的第一个代码块工作。但是,我使用变量的第二块,我没有输出。
我是python和pymongo的初学者,请耐心等待。
我有一个列表为; row = [1,2,...,100]
我想为列表中的每个条目查询一个mongodb集合。 收集的格式为: 集合= {“PK”,“ATTRIBUTE1”,“attribute2”,“attribute3”}
我想打电话给MongoDB的连接,并通过与排在我的列表中的每个条目迭代[我] = 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>
你为什么不使用IPython的,并试图检查this_document变量。当然,查找API并在代码中正确获取文档更容易,但我会鼓励您在初学者时使用它。 – spicavigo 2011-10-17 13:22:30
尽管有上面的评论,让我解释一下。 mongo_document是一个将用于获取结果的游标。你可以像对待迭代器一样对待它,并继续调用它的next()方法来获取下一个匹配的文档,直到出现StopIteration异常。否则,你在循环中完成它的方式 – spicavigo 2011-10-17 13:27:16