2016-10-31 39 views
1

如何使循環遍歷pymongo中的所有集合?如何在集合中製作pymongo/python for循環?

我有這樣的代碼:

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」包含所有不同的集合在我蒙戈數據庫名稱。

看來,錯誤來自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:需要字符串或緩衝區,字典發現

+0

'「db。」 + item +「.demographics」'正在構建一個字符串。您似乎正在構建一個看起來像您想要運行的代碼的字符串,並希望它的行爲與該代碼類似。這幾乎不是正確的答案。 – user2357112

回答

2

的PyMongo documentation表明,如果你想從一個訪問集合PyMongo數據庫使用一個代表其名稱的字符串,而不是點符號:

bulk_demographics = db[item].demographics 
+0

太棒了!這工作。謝謝! 這是最後我的代碼: 索引,項枚舉(list_courses): 光標1 =分貝[項目] .demographics.find({})限制(1) 對於i在光標1: 打印我 – jldelda