不知道这里或为什么发生了什么,似乎当我在一个游标上进行迭代时它会移动它,因为我无法从相同的起点运行第二个循环。我的例子:迭代在PyMongo中移动光标?
players = db.player.find({'parent_api__id' : 'stats', 'game__id':{'$in':games_list}, "played":"true"});
count = 0;
for c in players:
count = count + 1
for c in players:
game = db.game.find_one({'parent_api__id':'schedule', 'id':c['game__id']})
c['date'] = game['scheduled']
print c
在这一个它从未进入第二循环,如果我把打印上去顶它永远不会打它,它从来不会在底部
打印C现在如果我评论出在它的计数循环,所以它看起来是这样的:
players = db.player.find({'parent_api__id' : 'stats', 'game__id':{'$in':games_list}, "played":"true"});
#count = 0;
#for c in players:
# count = count + 1
for c in players:
game = db.game.find_one({'parent_api__id':'schedule', 'id':c['game__id']})
c['date'] = game['scheduled']
print c
然后进入第二循环并迭代完全没问题(打印出来,因为它去一起)
这是为什么?我必须在每次使用其他球员时重置光标= db.player.find({'parent_api__id':'stats','game__id':{'$ in':games_list},“played”:“true” }); ?似乎不可能如此。
感谢您提供任何帮助!
这是在Python和其他语言中使用的标准['Iterator'](https://docs.python.org/2/library/stdtypes.html#iterator-types)模式。迭代结果集两次似乎不常见。 – Stennie 2014-08-30 11:22:03