2015-04-28 32 views
2

如何獲取mongodb集合中使用的所有密鑰的列表?如何獲取mongodb中的密鑰的完整列表

我嘗試使用以下命令,創建Python中的CSV文件:

userAgentProp_list = [] 
# userAgentProp is a set of user ids 
# userColl is a mongodb collection 
for user in userAgentProp: 
    userAgentProp_list.append(userColl.find_one({"_id":user})) 

with open('userWtihAgentProp.csv','w+') as f: 
    w = csv.DictWriter(f,userAgentProp_list[0].keys()) 
    w.writeheader() 
    for user in userAgentProp_list: 
     # del row['_id'] 
     w.writerow(user) 

,但我不斷收到一個錯誤:

ValueError: dict contains fields not in fieldnames 

我想這是因爲userAgentProp_list[0]沒有與集合中的其他文檔相同的字段。

如何獲取集合中使用的所有密鑰的列表?

回答

0

我想我已經想出了一個解決方案。我希望有更多經驗的人告訴我這是否正確和/或可以做得更好/更有效。

def getCollectionKeys(collection): 
    """Get a set of keys from a collection""" 
    keys_list = [] 
    collection_list = collection.find() 
    for document in collection_list: 
     for field in document.keys(): 
      keys_list.append(field) 
    keys_set = set(keys_list) 
    return keys_set