python使用 db.select 返回的数据只能遍历一次

python中通过find从mongo中查出的数据,或者通过select返回的数据,其实返回的是游标,当你进行便利一次之后,游标指向最后,

所以当你再一次进行便利时,便出现数据为空的现象。

解决办法:通过list()进行数据的强制转换     lists = list(mongo中返回的数据)

但是这样又会出现新的问题:

1.list转换后的数据只有指,没有列明

2.数据过大时,进行数据转换时性能炒鸡差。。

解决办法:

1.使用namedtuple 和 map object。

2.使用map和namedtuple的时候,游标要使用fetchall()方法。一次行取出所有结果,然后调用map方法将所有的数据map到Record object上。

3.返回的map object可以调用for方法进行遍历。map object类似一个Record object列表。

4.namedtuple生成的对象,访问的时候是用dot来访问数据的。

    

原文地址:https://www.cnblogs.com/tangchuanyang/p/3931065.html