2017-02-27 87 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