gpt4 book ai didi

mongodb - 将 MongoDB 查询导出到文件

转载 作者:行者123 更新时间:2023-12-02 12:04:03 25 4
gpt4 key购买 nike

我有一个 MongoDB 查询,它返回一组单级 BSON 对象。

db.companies.aggregate([
{ $unwind: {
path: "$addresses", includeArrayIndex: "arrayIndex"}
},
{ $project: {
hrId:1,
arrayIndex:1,
location:'$addresses.location',
street:'$addresses.street',
city:'$addresses.city',
state:'$addresses.state',
country:'$addresses.country',
postCode:'$addresses.postCode'}
}])

我想将其导出到 csv 文件。我一直在网上寻找简单的解决方案,但没有成功。如果需要,我很乐意使用 gui/工具来执行此操作。

预先感谢您的帮助

最佳答案

逻辑上我们可以将问题分为两部分。

1) 对给定集合运行聚合

2)将返回结果导出到外部文件中。

MongoDB 不直接支持查询结果的导出,但是,我们可以玩点小技巧,让 MongoDB 做我们想要的事情。

解决方案:

1) 将聚合结果导出到另一个集合。

2) 使用 mongoexport 将该集合的结果导出到 csv 文件中。

根据您的示例,我会将 $out 添加到管道末尾。

db.companies.aggregate([
{ $unwind: {
path: "$addresses", includeArrayIndex: "arrayIndex"}
},
{ $project: {
hrId:1,
arrayIndex:1,
location:'$addresses.location',
street:'$addresses.street',
city:'$addresses.city',
state:'$addresses.state',
country:'$addresses.country',
postCode:'$addresses.postCode'}
},
{ $out: "tempCompaniesCollection"}])

此查询会将我们的查询结果存储到 tempCompaniesCollection 集合中。现在我们可以运行 mongoexport 作为

mongoexport -d "database" -c "tempCompaniesCollection" -f "hrId,arrayIndex,location,street,city,state,country,postCode" --type csv -o csvfile.csv

这会将结果导出到名为 csvfile.csv 的文件。

Note: mongoexport do require filed names to be provided if export type is a csv. See mongoexport documentation.

关于mongodb - 将 MongoDB 查询导出到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39584366/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com