gpt4 book ai didi

python - Pymongo 游标迭代的替代方案

转载 作者:行者123 更新时间:2023-12-01 02:01:00 25 4
gpt4 key购买 nike

我经历了很多光标迭代问题,但没有看到任何可以解决我的问题。

我有一个以下形式的数据库

[{book:'A', author:'John'}, {book:'B', author:'Tony'}, {book:'C', author:'John'}...]

同一作者可以多本书。

我需要的是2个数组

authors = ['John','Tony','John']
books = ['A','B','C']

其中对应的元素在两个数组中位于相同的索引处。

现在我通过光标迭代得到它。

authors =[]
books =[]
cursor = collection.find()
for elem in cursor:
authors.append(elem['author'])
books.append(elem['book'])

但这非常慢。我有数千份文件。有没有其他方法(例如查询)可以更快地获得结果。

最佳答案

可以执行聚合查询来收集所有作者和书籍。 例如

pipeline = [
{
'$group': {
'_id': None,
'authors': { '$push': '$author' },
'books': { '$push': '$book' }
}
}
]

result = collection.aggregate(pipeline))

In [2]: print(result)
[{'_id': None, 'authors': ['John', 'Tony', 'John'], 'books': ['A', 'B', 'C']}]

关于python - Pymongo 游标迭代的替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49626941/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com