MongoDB中的数据导出为excel CSV 文件

Posted 割肉机

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MongoDB中的数据导出为excel CSV 文件相关的知识,希望对你有一定的参考价值。

 

1、打开命令行,进入我们所安装的mongodb路径下的bin文件夹

2、我们采用bin文件夹下的mongoexport方法进行导出, 

1
mongoexport -d myDB -c user -f _id,name,password,adress --csv -o ./user.csv
  1. -d  标示 数据库  
  2.  -c   标示  数据表  
  3.  -f   需要提取的field用逗号分隔  
  4.  -o  输出路径  

 

 

ongoexport query with using date

Sometimes we might want to export only a specific part of our collection with query support of mongoexport.

Suppose this is our notebook collection, and each document refers to a notebook with their production date.

{
        "_id" : ObjectId("531ce460000000019b9643bc"),
        "company" : "Samsung",
        "date" : ISODate("2014-03-09T22:00:00Z"),
        "price" : 2000,
        "brand" : "Ultrabook",
}
{
        "_id" : ObjectId("531ce460000000019b9643ba"),
        "company" : "Sony",
        "date" : ISODate("2014-03-08T22:00:00Z"),
        "price" : 1500,
        "brand" : "Vaio",
}
{
        "_id" : ObjectId("531ce460000000019b9643bd"),
        "company" : "Apple",
        "date" : ISODate("2014-03-07T22:00:00Z"),
        "price" : 2250,
        "brand" : "MacbookPro",
}
{
        "_id" : ObjectId("531ce460000000019b9643be"),
        "company" : "Apple",
        "date" : ISODate("2014-03-06T22:00:00Z"),
        "price" : 1200,
        "brand" : "MacbookAir",
}
{
        "_id" : ObjectId("531ce460000000019b9643bf"),
        "company" : "Samsung",
        "date" : ISODate("2014-03-05T22:00:00Z"),
        "price" : 1000,
        "brand" : "Ultrabook",
}

The original way of mongoexport is defined by

mongoexport --db <database> --collection <collection> --query <JSON query> --out <file>

The major problem is we can not use ISODate(“”) objects to represent dates within a query, so that we have to convert each of them object into a Date object.

For instance; if we try to find the notebooks produced between 2014-03-09T22:00:00Z and 2014-03-07T22:00:00Z by Apple with the given query; 

mongoexport --db test --collection notebooks --query  \'{ company:"Apple", date: { $lt: ISODate("2014-03-09T22:00:00Z") , $gte: ISODate("2014-03-07T22:00:00Z")} }\' --out example.json

we will probably have an error like;

ERROR: too many positional options

There are two common ways to convert ISODates into Date objects which are;

    • we can use a simple javascript in mongo shell like;
var a = ISODate(\'2014-03-10T22:00:00Z\');
a.getTime()

Now we have correct Date times to use them in our query.

mongoexport --db test --collection notebooks --query  "{ company:"Apple", date: { $lt: new Date(1394402400000) , $gte: new Date(1394229600000)} }" --out example.json

Finally, we will have a json file (example.json) in our current directory which includes only one document which is;

{
        "_id" : ObjectId("531ce460000000019b9643bd"),
        "company" : "Apple",
        "date" : ISODate("2014-03-07T22:00:00Z"),
        "price" : 2250,
        "brand" : "MacbookPro",
}

以上是关于MongoDB中的数据导出为excel CSV 文件的主要内容,如果未能解决你的问题,请参考以下文章

MongoDB中的数据导出为excel CSV 文件

将文本表的数据导出为 .csv (Tableau)

MongoDb导出数据.CSV格式到EXCEL

mongodb 导入导出

mongodb导入csv文件时出错

如何使用 agggrid 导出为 csv 功能为 excel 文件数据添加边框?