pymongo如何将Cursor直接转成list?

pymongo如何将Cursor直接转成list?

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

    cursor=collection.find()

res=[]

for t in cursor:

res.append(t)

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


回答:

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]

以上是 pymongo如何将Cursor直接转成list? 的全部内容, 来源链接: utcz.com/p/938733.html

回到顶部