for 循环中的 pymongo count()
pymongo count() in for loop
以下代码:
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
为什么循环不工作?
你不能那样使用变量。每次都在 data_base
上获取名为 x
的属性 - 与循环的 x
变量无关。相反,您需要使用 getattr
:
for x in collection_list:
print getattr(data_base, x).count()
getattr
允许您动态引用一个属性,其中属性的名称存储在一个直到运行时才知道的变量中。
以下代码:
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
为什么循环不工作?
你不能那样使用变量。每次都在 data_base
上获取名为 x
的属性 - 与循环的 x
变量无关。相反,您需要使用 getattr
:
for x in collection_list:
print getattr(data_base, x).count()
getattr
允许您动态引用一个属性,其中属性的名称存储在一个直到运行时才知道的变量中。