【发布时间】:2011-10-17 13:17:23
【问题描述】:
编辑: 我稍微提炼了这个问题。
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的初学者,请多多包涵。
我有一个列表; 行 = [1, 2, ...., 100]
我想为列表中的每个条目查询一个 mongodb 集合。 该集合具有以下格式: 集合 = {'pk'、'attribute1'、'attribute2'、'attribute3'}
我想调用 mongodb 连接并使用 row[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,我会得到 p>
<pymongo.cursor.Cursor object at 0xe43150>
【问题讨论】:
-
你为什么不使用 ipython 并尝试检查 this_document 变量。当然,仅查找 API 并在代码中正确获取文档会更容易,但我鼓励您像初学者一样尝试使用它。
-
尽管有上面的评论,让我解释一下。 mongo_document 是一个游标,您将使用它来获取结果。你可以把它当作一个迭代器,并继续调用它的 next() 方法来获取下一个匹配的文档,直到你得到 StopIteration 异常。或者,你在循环中完成它的方式