使用 Python 中的嵌套列表理解从 mongo 集合中获取所有文档

Get all documents from mongo collection using a nested list comprehension in Python

我有一个 python 的 mongo 文档列表,名为 id_list,其中包含一个名为 userId 的字段,以及一个名为 mongo 的用户交易集合collection。我想通过将 id_list 中每个用户的 ID 作为参数传递给嵌套列表理解中的 mongo 查询来检索每个用户集合中的所有交易。

这是我试过的:

[doc for doc in collection.find({'userId': user._id, 'site': SITE, 'operator': OPERATOR, 'isTrue': {'$exists': True}}) for user in [user for user in id_list]]

它对我来说看起来是正确的,但是当我 运行 这个它 returns 一个不可能的空列表。

如果我试试这个:

[doc in collection.find({'userId': user._id, 'site': SITE, 'operator': OPERATOR, 'isTrue': {'$exists': True}}) for user in [user for user in id_list]]

我得到一个列表,其中包含每个用户的单个交易,但我想恢复我从 ´id_list´ 传递的每个用户的所有交易。

有人可以告诉我列表理解有什么问题吗?

非常感谢您。

我终于通过这样做得到了它:

[doc for doc in collection.find({'userId': {'$in': id_list}, 'site': SITE, 'operator': OPERATOR, 'isTrue': {'$exists': True}})]

我没有将列表中的每个 id 一个一个地传递给 mongo 查询,而是使用了 $in 运算符,并将它传递给 id_list 。作为执行此操作的正确方法,它也比我尝试的方法更有效,因为 id_list 在 mongo 查询中循环而不是在 Python.[=14 中循环=]

还是谢谢你:)