如何使用集合在 pymongo/python 中创建 for 循环?

How to make a for loop in pymongo/python with collections?

如何在 pymongo 中创建一个遍历所有集合的循环?

我有这个代码:

for index, item in enumerate(list_courses):
    bulk_demographics = "db." + item + ".demographics"

    for i in bulk_demographics.find({"user_id":1}).limit(1):
        print i   

"list_courses" 包含我的 mongo 数据库中所有不同的集合名称。

好像是concat操作出错了,因为直接粘贴集合名称就完美了

这是我得到的错误:

TypeError                                 Traceback (most recent call last)
<ipython-input-33-cb93513f793d> in <module>()
      1 for index, item in enumerate(list_courses):
      2     bulk_demographics = "db." + item + ".demographics"
----> 3     for i in bulk_demographics.find({"user_id":1}).limit(1):
      4         print i

TypeError:强制转换为 Unicode:需要字符串或缓冲区,找到字典

PyMongo documentation 表示如果您想使用表示其名称的字符串从 PyMongo 数据库访问集合,则使用方括号表示法而不是点表示法:

bulk_demographics = db[item].demographics