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

标签 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

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

最佳答案

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

bulk_demographics = db[item].demographics

关于python - 如何在 pymongo/python 中使用集合创建 for 循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40349579/

相关文章:

python - 如何使用 brew 安装的 Python 作为默认 Python?

python - Pymongo 聚合不返回游标而是返回对象

python - Pymongo 不像 JSON 那样解析

python - InvalidDocument : Cannot encode object: <pymongo. 游标。游标对象位于

python - 在 MongoDB 的客户端 pymongo 中编写查询,将字符串的一部分动态转换为日期

python - odoo公​​司可以共享同一个合作伙伴吗?在哪些情况下?

python - Pandas 数据透视表 : a very surprising result with aggfunc len(x. unique()) 和边距=True

python - Python 中 'x = y = z' 赋值的语义

python - 尝试将字符串属性设置为模型另一部分的 md5 的默认值

mongodb - mongodb 在两个集合之间加入