MongoDB导出查询结果到文件主要有两种方式:使用mongoexport命令和使用db.collection.find().forEach()方法,下面分别进行讲解:
使用mongoexport命令导出查询结果到文件
- 语法:
mongoexport -d <database_name> -c <collection_name> -q <query_condition> -f <field_list> -o <output_file_path>
- 参数说明:
-d
:指定要导出的数据库名称-c
:指定要导出的集合名称-q
:指定查询条件,格式同find()方法,可省略。例如:-q '{"age": 30}'
-f
:指定要导出的文档字段,以逗号分隔,可省略。例如:-f "name,age,gender"
-
-o
:指定导出的文件路径及文件名(json、csv、tsv等格式均可),必需参数 -
示例说明:
- 示例1:导出集合test中age=30的所有文档
mongoexport -d test -c users -q '{"age": 30}' -o users_age_30.json
说明:导出test数据库中users集合中age=30的所有文档,并将结果保存到users_age_30.json文件中
- 示例2:导出集合test中所有文档的name、age、gender字段到csv文件中
mongoexport -d test -c users -f "name,age,gender" --type=csv -o users.csv
说明:导出test数据库中users集合中所有文档的name、age、gender字段至csv文件users.csv
使用db.collection.find().forEach()方法导出查询结果到文件
- db.collection.find().forEach()方法通过JavaScript语言对查询到的文档进行遍历,并可以将文档数据输出到任意位置,例如:文件。
db.<collection_name>.find(<query_condition>).forEach(function(doc){
//处理每一个查询得到的文档,将其输出到文件中
})
- 示例说明:
- 示例1:导出集合test中age=30的所有文档到json文件中
var cursor = db.users.find({"age": 30});
var file = new File("users_age_30.json", "w");
while(cursor.hasNext()) {
file.write(cursor.next());
}
file.close();
说明:查询test数据库中users集合中age=30的所有文档,并将结果保存到users_age_30.json文件中。
- 示例2:导出集合test中所有文档的name、age、gender字段到csv文件中
var cursor = db.users.find({});
var file = new File("users.csv", "w");
file.write("name,age,gender\n")
cursor.forEach(function(doc){
file.write(doc.name +","+ doc.age +","+ doc.gender + "\n");
});
file.close();
说明:查询test数据库中users集合的所有文档,并将其name、age、gender字段保存到csv文件users.csv中。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:MongoDB导出查询结果到文件例子 - Python技术站