2017-02-27 86 views
0

我在mlab中有一些文件mongodb;格式爲:嵌套pymongo查詢(mlab)

{ 
    "_id": { 
     "$oid": "58aeb1d074fece33edf2b356" 
    }, 
    "sensordata": { 
     "operation": "chgstatus", 
     "user": { 
      "status": "0", 
      "uniqueid": "191b117fcf5c" 
     } 
    }, 
    "created_date": { 
     "$date": "2017-02-23T15:26:29.840Z" 
    } 
} 

數據庫名稱:mparking_sensor

集合名稱:傳感器

我想在python查詢,提取狀態鍵值對,只有CREATED_DATE鍵值對。

我的Python代碼:

import sys 
import pymongo 
uri = 'mongodb://thorburn:[email protected]:57529/mparking_sensor' 


client = pymongo.MongoClient(uri) 
db = client.get_default_database().sensor 
print db 
results = db.find() 

for record in results: 

print(record["sensordata"] , record['created_date']) 

print() 

client.close() 

這給了我sensordata下的一切如預期,圓點符號給我的錯誤,能有人幫助?

+0

我嘗試使用打印(記錄[ 'sensordata' :{'user':{'status':'1'}}])..難以置信的錯誤 – rohit

回答

1

PyMongo將BSON文檔表示爲Python詞典,將子文檔表示爲詞典中的詞典。要在嵌套的字典訪問值:

record["sensordata"]["user"]["status"] 

因此,一個完整的打印語句可能是:

print("%s %s" % (record["sensordata"]["user"]["status"], record['created_date'])) 

,打印:

0 {'$date': '2017-02-23T15:26:29.840Z'} 
+0

非常感謝,它的工作。但我不能找到'$日期'鍵,只有值。輸出示例:0 2017-02-24 18:45:03.449000 – rohit