pymongo如何将Cursor直接转成list?

新手上路,请多包涵

感觉使用遍历和添加的方法

    cursor=collection.find()
    res=[]
    for t in cursor:
        res.append(t) 

感觉这个办法太呆了,不知道pymongo有没有内置的方法
主要放返回前端数据的时候,必须是json的格式,所以想问下

阅读 2.6k
1 个回答
class Cursor(Generic[_DocumentType]):
    """A cursor / iterator over Mongo query results."""

find返回的Cursor是一个迭代器。

再其内部有一个self.__data: deque = deque()来存储数据,初次迭代时并没有数据。
具体看:

def next(self) -> _DocumentType:
    """Advance the cursor."""
    if self.__empty:
        raise StopIteration
    if len(self.__data) or self._refresh():
        return self.__data.popleft()
    else:
        raise StopIteration

__next__ = next

self._refresh()会从MongoDB获取数据。


不建议使用内部方法来操作。不过你可以这样

cursor=collection.find()
res=[t for t in cursor]
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题