Python 在mongoDB中过滤多个返回的文档

Python 在mongoDB中过滤多个返回的文档,python,mongodb,twitter,tweepy,Python,Mongodb,Twitter,Tweepy,我试图执行一个查询,每次都返回一个文档。问题是有些文档在数据库中有多个实例。因此,我得到的不是一个带有查询的文档,而是多个结果。因此,我尝试使用find_one方法返回第一个查询匹配。然而,从一种方法到另一种方法,我面临着一个新问题。我的代码如下: lines = [line.rstrip() for line in open('ids.txt')] list_names = [] names= open('name.txt', 'w') for x in range(0,3000): i

我试图执行一个查询,每次都返回一个文档。问题是有些文档在数据库中有多个实例。因此,我得到的不是一个带有查询的文档,而是多个结果。因此,我尝试使用find_one方法返回第一个查询匹配。然而,从一种方法到另一种方法,我面临着一个新问题。我的代码如下:

lines = [line.rstrip() for line in open('ids.txt')]

list_names = []
names= open('name.txt', 'w')
for x in range(0,3000):
  id = int(lines[x])
  print x ,'  ',lines[x]
  for cursor in collection.find_one({"_id.uid": id}):
      name = cursor['screenname']
      print name
      list_names.append(name)
  names.write("%s\n" % name)
names.close()
我有一个ID列表,我想从mongoDb返回相应的名称。但是,我得到了'name=cursor['screenname'] TypeError:字符串索引必须是整数


我做错了什么?

find\u one方法不返回游标。它返回文档本身

session = self.sessions.find_one({'_id': session_id})
print session # must print your document

看起来变量cursor是字符串,我建议尝试name=cursor[0],或者name=cursor,或者在代码pdb的问题行之前添加。设置_trace()以查看实际的cursor是什么以及如何处理它。为什么在find()的情况下它工作得很好??