for循环中的pymongo count()

时间:2015-04-19 17:41:52

标签: python pymongo

以下代码:

client = MongoClient()
data_base = client.hkpr_restore

collection_list = ['agents', 'email_logs', 'property', 'user']
print data_base.agents.count()
print data_base.email_logs.count()
print data_base.property.count()
print data_base.user.count()

for x in collection_list:
    print data_base.x.count()

打印以下内容:

Begin Main
6622
32067
4168
18066
0
0
0
0
End Main

为什么循环不起作用?

1 个答案:

答案 0 :(得分:0)

你不能那样使用变量。每次都会在data_base上获取名为x的属性 - 与循环的x变量无关。相反,您需要使用getattr

for x in collection_list:
    print getattr(data_base, x).count()

getattr允许您动态引用属性名称存储在变量中的属性,直到运行时才知道该变量。