有时候我们需要将把MongoDB中的数据导出为excel CSV文件,我们可以使用mongoexport
命令来完成。所以首先要安装mongodb,关于mongodb的安装这里不做介绍,可以查看官方文档进行安装。
官方文档地址:https://docs.mongodb.com/manual/installation/
这里只对mongoexport
命令进行介绍,并将MongoDB中的数据导出为CSV文件。
使用mongoexport --help
命令查看,内容如下:
Usage:
mongoexport
Export data from MongoDB in CSV or JSON format.
See http://docs.mongodb.org/manual/reference/program/mongoexport/ for more information.
general options:
--help print usage
--version print the tool version and exit
verbosity options:
-v, --verbose= more detailed log output (include multiple times for more verbosity, e.g. -vvvvv, or specify a numeric value, e.g. --verbose=N)
--quiet hide all log output
connection options:
-h, --host= mongodb host to connect to (setname/host1,host2 for replica sets)
--port= server port (can also use --host hostname:port)
ssl options:
--ssl connect to a mongod or mongos that has ssl enabled
--sslCAFile= the .pem file containing the root certificate chain from the certificate authority
--sslPEMKeyFile= the .pem file containing the certificate and key
--sslPEMKeyPassword= the password to decrypt the sslPEMKeyFile, if necessary
--sslCRLFile= the .pem file containing the certificate revocation list
--sslAllowInvalidCertificates bypass the validation for server certificates
--sslAllowInvalidHostnames bypass the validation for server name
--sslFIPSMode use FIPS mode of the installed openssl library
authentication options:
-u, --username= username for authentication
-p, --password= password for authentication
--authenticationDatabase= database that holds the user's credentials
--authenticationMechanism= authentication mechanism to use
namespace options:
-d, --db= database to use
-c, --collection= collection to use
uri options:
--uri=mongodb-uri mongodb uri connection string
output options:
-f, --fields=[,]* comma separated list of field names (required for exporting CSV) e.g. -f "name,age"
--fieldFile= file with field names - 1 per line
--type= the output format, either json or csv (defaults to 'json') (default: json)
-o, --out= output file; if not specified, stdout is used
--jsonArray output to a JSON array rather than one object per line
--pretty output JSON formatted to be human-readable
--noHeaderLine export CSV data without a list of field names at the first line
querying options:
-q, --query= query filter, as a JSON string, e.g., '{x:{$gt:1}}'
--queryFile= path to a file containing a query filter (JSON)
-k, --slaveOk allow secondary reads if available (default true) (default: false)
--readPreference=| specify either a preference name or a preference json object
--forceTableScan force a table scan (do not use $snapshot)
--skip= number of documents to skip
--limit= limit the number of documents to export
--sort= sort order, as a JSON string, e.g. '{x:1}'
--assertExists if specified, export fails if the collection does not exist (default: false)
从上面的帮助信息可以非常清楚的知道各个命令的含义,所以可以使用下面的命令完成CSV文件的导出:
mongoexport --host=127.0.0.1 --port=27017 -u root -p root1234 -d mydatabase -c user --query='{"age": 18}' --type=csv --fields=_id,name,age,city -o /root/user.csv
在导出数据的过程中遇到如下问题:
too many positional arguments: [18}]
try 'mongoexport --help' for more information
使用提示的命令mongoexport --help
查看帮助信息,很容易就看出问题的原因,我的查询条件没有使用单引号包括起来,所以我们使用一些命令或者操作的时候,遇到问题不要害怕,也不要一遇到问题就去百度,一定要使用帮助命令查看官方文档,这是解决问题最高效的手段,在查看文档的过程中我们也可以学习到更多规范的操作,其实网上很多文章写都是一知半解虽然可以快速解决问题,但是没有官方文档详细和权威。我这里也是做一个简单的总结,方便自己查看,也希望对遇到同样问题的同学提供一点帮助。