MongoDBデータベースにいくつかの文書があります。Mongoose文書をCSVファイルに書き込む
これらの文書をcsvファイルとして出力したいと思います。
ドキュメントの中にはネストされたオブジェクトがあるので、最初にそれらを操作する必要があると思います。
だから、文書が、私は最善の解決策は、2つの行としてこのオブジェクトを印刷することだろうと思い
{
name: {
english: "English Name",
spanish: "Spanish name"
},
subdocuments: [
{
quantity: 100,
price: 20
},
{
quantity: 200,
price: 30
},
]
}
次のようになります。
English Name, Spanish Name, Quantity, Price
===========================================
English Name, Spanish Name, 100, 20
English Name, Spanish Name, 200, 30
だから私はこれをどのように行うことができますか? write-to-csv Node.jsパッケージを使用するのが最善でしょうか?
私は
const rows = [];
Collection.find({}).then(docs => {
docs.forEach(doc => {
doc.subdocuments.forEach(subdocument => {
rows.push({ 'English Name': doc.name.english, 'Spanish Name': doc.name.spanish, quantity: subdocument.quantity, price: subdocument.price });
});
});
});
でドキュメントを取得する必要があると思う。しかし、ドキュメントがサブ文書が含まれている場合は、このアプローチでは、私だけの行を取得しますので、subdocuments
配列がある場合、私はまた、単一の行に興味を持っています空 - 数量と価格の列が空白の場合。私は、オブジェクトのこの配列を持っている場合
は、私は非常にシンプルであるかもしれないcsvファイルにそれを書きたいので、私はそれだけで
var csv = '';
// headers
csv += 'English Name, Spanish Name, Quantity, Price\n';
rows.forEach(row => {
csv += row['Spanish Name'] + ', ' + row['English Name'] + ', ' + row.quantity + ', ' + row.price + '\n';
});
ような何かをするのがベストだと思う。しかし、これは実際にあります正しいアプローチ?ユーザーがcsvファイルとしてダウンロードすることを確認するにはどうすればよいですか?テキストには特殊文字(ö、äなど)を含めることもできます。私はNode.jsの中であなたがあなたのコードを変更することで解決することができ、空のサブ文書で