Mongodb查询到CSV转储(mlab托管的mongodb)

时间:2017-03-01 14:10:08

标签: mongodb export-to-csv linear-regression mlab

我正在查询已填充的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 /或任何其他方法)的正确方法,还是其他一些方法,以便将来进行进一步的基于预测的分析,如线性回归?

2 个答案:

答案 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进行连接