我正在查询已填充的mlab MongoDB数据库,我想将生成的多个文档存储在一个CSV文件中。
编辑:我希望得到的CSV文件的输出格式:
uniqueid status date
191b117fcf5c 0 2017-03-01 15:26:28.217000
191b117fcf5c 1 2017-03-01 18:26:28.217000
MongoDB数据库文档格式是
{
"_id": {
"$oid": "58b6bcc00bd666355805a3ee"
},
"sensordata": {
"operation": "chgstatus",
"user": {
"status": "1",
"uniqueid": "191b117fcf5c"
}
},
"created_date": {
"date": "2017-03-01 17:51:17.216000"
}
}
数据库名称:mparking_sensor
集合名称:demo
要查询的python代码如下:
# -*- coding: utf-8 -*-
"""
Created on Wed Mar 01 18:55:18 2017
@author: Being_Rohit
"""
import pymongo
uri = 'mongodb://#####:*****@ds157529.mlab.com:57529/mparking_sensor'
client = pymongo.MongoClient(uri)
db = client.get_default_database().demo
print db
results = db.find()
f = open("mytest.csv", "w")
for record in results:
query1 = (record["sensordata"]["user"],record["created_date"])
print query1
print "done"
client.close()
编辑:我得到的query1的输出格式是:
({u'status': u'0', u'uniqueid': u'191b117fcf5c'}, {u'date': u'2017-03-01 17:51:08.263000'})
有人知道将这些数据转储到.csv文件(pandas /或任何其他方法)的正确方法,还是其他一些方法,以便将来进行进一步的基于预测的分析,如线性回归?
答案 0 :(得分:1)
Mongoexport将为您完成这项工作。它可以在本地MongoDB工具中唯一地导出CSV format,仅限于一组特定的字段。
你的mongoexport命令是这样的:
mongoexport.exe \
--db mparking_sensor \
--collection demo \
--type=csv \
--fields sensordata.user.uniqueid,sensordata.user.status,created_date
这将导出如下内容:
sensordata.user.uniqueid,sensordata.user.status,created_date
191b117fcf5c,0,2017-03-01T15:26:28.217000Z
191b117fcf5c,1,2017-03-01T18:26:28.217000Z
答案 1 :(得分:0)
我试图使用mlabs'export collection'将集合导出到csv,这使它变得比原来更难。因此,我使用了https://studio3t.com并使用标准的MongoDB URI进行连接