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

时间:2016-10-31 19:54:32

标签: python pymongo

如何循环迭代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:需要字符串或缓冲区,找到dict

1 个答案:

答案 0 :(得分:2)

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

bulk_demographics = db[item].demographics