目次
index.js
定義されたフィールドの配列を使用してCSVテンプレート
ホームページ ウェブフロントエンド jsチュートリアル node.jsを使用してmongooseを使用して、csvファイルをmongodbにバルクインポート

node.jsを使用してmongooseを使用して、csvファイルをmongodbにバルクインポート

Mar 10, 2025 am 12:09 AM

このトピックは私にとって本当に楽しいものです。多くのWebアプリケーションでは、ユーザー入力を受け入れ、データベースに単一のレコードを保存することが非常に一般的です。しかし、ユーザー(またはあなたが)が単一のコマンドで複数の挿入を実行したい場合はどうですか?

この記事では、CSVテンプレートとフォームを作成してCSVファイルをアップロードする方法を示します。 mongodbで。そうでない場合は、Mongodbとnode.js

記事のMongooseの紹介を最初に読むことをお勧めします。この記事では、Mongooseがモデルが作成された強力なスキーマを作成することにより、MongoDBとどのように相互作用するかについて説明します。既にマングースをよく理解している場合は、続行しましょう。

フラグを使用して、プロジェクトがデフォルト値を所定の位置に初期化することを意味します。 CSVファイルを作成および解析する前に、最初に最初のセットアップを実行する必要があります。これをWebアプリケーションにしたいと考えています。そのためには、Expressパッケージを使用して、すべてのNitty-Grittyサーバーのセットアップを処理します。コマンドプロンプトでは、次のコマンドを実行してExpressをインストールします。

このWebアプリケーションはWebフォームを介してファイルを受け入れるため、ExpressサブパッケージExpressファイルアップロードも使用します。今すぐインストールしましょう。

mkdir csvimport<br>cd csvimport<br>npm init -y<br>
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

Webアプリケーションを設定し、ファイルアップロードフォームを作成する基本的なWebページを作成するのに十分な初期構成を実行しました。このファイルは、Webサーバーをセットアップします。 -y このファイルはExpressとExpressファイルアップロードライブラリをインポートし、Webアプリケーションを設定してファイルアップロードを使用し、ポート8080に耳を傾けます。これは、Webアプリケーションのデフォルトのランディングページである「/」でExpressを使用してルートを作成します。このルートは、ユーザーがCSVファイルをアップロードできるようにするWebフォームを含む

index.html
npm install express --save<br>
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ファイルを返します。

端末でコマンドを実行してWebサーバーを起動することができます。これは、Webサーバーに正常に接続したことを意味します。npm install express-fileupload --save<br>ファイルを作成します。このファイルは、csvファイルをアップロードするためのフォームを作成します。

このhtmlファイルには2つの重要なことが含まれています。

  1. /テンプレートへのリンクは、クリックすると、インポートする情報を入力できるCSVテンプレートをダウンロードします。
  2. は、フォームにファイルのアップロードが含まれている場合、HTMLで使用されるエンコードの方法です。 
  3. encTypemultipart/form-datafile http:// localhost:8080/にアクセスすると、以前に作成されたフォームが表示されます。 Mongoose 記事の紹介を読むと、著者スキーマが作成されました。この記事では、このスキーマを再作成し、ユーザーが著者のコレクションをMongoDBデータベースに大量にインポートできるようにします。著者スキーマを見てみましょう。しかし、それを行う前に、おそらくあなたはそれを推測する前に、マングースパッケージをインストールする必要があります:multipart/form-data

マングースインストールされたスキーマとモデルの作成>著者

author.> jsnode.jsを使用してmongooseを使用して、csvファイルをmongodbにバルクインポートファイルを作成しましょう。テンプレートリンクをクリックしてダウンロードできるCSVテンプレートの作成時。 CSVテンプレートの生成を支援するために、

json2csv パッケージを使用します。このNPMパッケージは、JSONを列のタイトルと適切なラインエンディングでCSVに変換します。

mkdir csvimport<br>cd csvimport<br>npm init -y<br>
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
以前に作成された

index.js

ファイルを更新して、

/テンプレートの新しいルートを含めるようにします。この新しいコードは、このコードが最初に作成したJS

ファイルに以前に作成された
npm install express --save<br>
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
index.js

ファイルに追加されます。このコードは、新しいtemplate.jsファイル(次に作成される)を含み、

/Template
npm install express-fileupload --save<br>
ログイン後にコピー
のルートを作成します。このルートは、新しいルートを含むように更新されたExpress Serverを使用してファイルで> template.jsファイルで関数を呼び出します。新しいtemplate.jsファイルを作成しましょう。次に、A 関数を作成してエクスポートします。この関数は、Expressサーバーからのリクエストと応答オブジェクトを受け入れます。関数内で、CSVテンプレートに含めるフィールドの配列を作成します。これは、2つの方法のいずれかで実行できます。最初の方法(このチュートリアルで行われている)は、テンプレートに含まれるフィールドの静的リストを作成することです。 2番目の方法は、著者スキーマからプロパティを抽出することにより、フィールドのリストを動的に作成することです。
var app = require('express')();<br>var fileUpload = require('express-fileupload');<br>var server = require('http').Server(app);<br> <br>app.use(fileUpload());<br><br>app.get('/', function (req, res) {<br>  res.sendFile(__dirname + '/index.html');<br>});<br>server.listen(8080, () => {<br>  console.log('Server started on port 8080')<br>})<br>
ログイン後にコピー

2番目の方法は、次のコードを使用することです。

mkdir csvimport<br>cd csvimport<br>npm init -y<br>
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

動的な方法を使用するのはいい考えでしたが、スキーマからCSVテンプレートに複数のプロパティを含めたくない場合は、少し複雑になります。この場合、CSVテンプレートには_idおよびcreatedプロパティが含まれていません。これらはコードを介して入力されるためです。ただし、除外したいフィールドがない場合は、動的メソッドも同様に機能します。

定義されたフィールドの配列を使用してCSVテンプレート

を作成すると、JavaScriptオブジェクトからCSVテンプレートを作成します。これはこのルートの結果になります。json2csvcsv。最後に、Expressサーバーからの

プロパティを使用して、2つのヘッダープロパティが設定されます。 Webブラウザでは、テンプレートをダウンロードするためのリンクが付いたWebフォームが表示されます。リンクをクリックしてテンプレートをダウンロードすると、

authors.csvresファイルをダウンロードできます。このファイルは、アップロードされる前に入力されます。Microsoft Excelでテンプレートファイルを開くと、CSVファイルが入力する必要があります。 写真。この例の肉とジャガイモに到達し、そのCSVファイルを解析しましょう。

index.js

ファイルには、MongoDBに接続し、ファイルのアップロードを受け入れる新しいポストルートを作成するための更新が必要です:>データベース接続と新しいPostルートを構成すると、CSVファイルを解析する時が来ました。幸いなことに、この仕事を支援するいくつかの優れたライブラリがあります。このチュートリアルでは、次のコマンドとともにインストールできる

パッケージを使用します。

node.jsを使用してmongooseを使用して、csvファイルをmongodbにバルクインポートPOSTルートは、

upload.js

ファイルからa
npm install express --save<br>
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
関数を呼び出すテンプレートルートと同様に作成されました。これらの機能を別々のファイルに配置する必要はありません。ただし、これらのルートの個別のファイルを作成するのが最善です。コードを優しく整理して整理するのに役立つためです。

データの送信

。最初の3行には、CSVデータを解析して保存するために必要な必要なパッケージが含まれています。次に、 index.js

ファイルで使用するためにpost関数が定義およびエクスポートされます。この関数の内部は、魔法が行われる場所です。関数は、最初にリクエスト本体に含まれるファイルがあることをチェックします。ない場合、ファイルをアップロードする必要があることを示すエラーが返されます。

ファイルがアップロードされたら、ファイルへの参照が

と呼ばれる変数に保存されます。これは、アレイ内の

配列とauthorFileプロパティにアクセスすることによって行われます。 filesプロパティは、file index.htmlfile例で最初に定義されたファイル入力名の名前と一致します。このアレイは、データをデータベースに保存するために使用されます。

ライブラリは、

関数を活用することにより呼び出されます。この関数は、CSVファイルを文字列として受け入れます。文字列はauthorsプロパティから抽出されます。

プロパティには、アップロードされたCSVファイルのコンテンツが含まれています。

fast-csv次の行には、fromString関数の2つのオプションが含まれています。これらはどちらもauthorFile.dataに設定されています。これは、CSVファイルの最初の行にヘッダーが含まれ、空の行が無視されることをライブラリに伝えています。data

オプションを構成した場合、

イベントとfast-csvイベントがトリガーされたときに呼び出される2つのリスナー関数を設定します。 headersイベントは、CSVファイルのすべての行に対して1回呼び出されます。このイベントには、解析されたデータのJavaScriptオブジェクトが含まれています。ignoreEmptytrueオブジェクトは更新され、著者スキーマのプロパティが新しい

を含む。次に、このオブジェクトは

配列に追加されます。dataendCSVファイルが完全に解析されたら、dataイベントがトリガーされます。イベントコールバック関数の内部では、著者モデルの

関数を呼び出して、

>の配列をそれに渡します。_idObjectIdアレイを保存しようとするエラーが発生した場合、例外がスローされます。それ以外の場合は、ユーザーに成功メッセージが表示され、データベースにアップロードされて保存された著者の数を示します。authors

データベーススキーマはこれに似ている必要があります。

endこれはいくつかの方法で行うことができます。私がそれを実装する場合は、dataコールバック関数を更新して、著者アレイの長さを確認することをお勧めします。配列が定義された長さを超える場合、例えば100、アレイのAuthor.create関数を呼び出してから、配列を空にリセットします。これにより、レコードは100のチャンクに保存されます。最終記録を保存するためにcreateendコールバック関数にファイナル

コールを残してください。メアリーは、ナイジェリアのラゴスに拠点を置くソフトウェア開発者であり、node.js、javascript、mysql、およびnosqlテクノロジーの専門知識を持っています。

以上がnode.jsを使用してmongooseを使用して、csvファイルをmongodbにバルクインポートの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

独自のJavaScriptライブラリを作成および公開するにはどうすればよいですか? 独自のJavaScriptライブラリを作成および公開するにはどうすればよいですか? Mar 18, 2025 pm 03:12 PM

記事では、JavaScriptライブラリの作成、公開、および維持について説明し、計画、開発、テスト、ドキュメント、およびプロモーション戦略に焦点を当てています。

ブラウザでのパフォーマンスのためにJavaScriptコードを最適化するにはどうすればよいですか? ブラウザでのパフォーマンスのためにJavaScriptコードを最適化するにはどうすればよいですか? Mar 18, 2025 pm 03:14 PM

この記事では、ブラウザでJavaScriptのパフォーマンスを最適化するための戦略について説明し、実行時間の短縮、ページの負荷速度への影響を最小限に抑えることに焦点を当てています。

フロントエンドのサーマルペーパーレシートのために文字化けしたコード印刷に遭遇した場合はどうすればよいですか? フロントエンドのサーマルペーパーレシートのために文字化けしたコード印刷に遭遇した場合はどうすればよいですか? Apr 04, 2025 pm 02:42 PM

フロントエンドのサーマルペーパーチケット印刷のためのよくある質問とソリューションフロントエンド開発におけるチケット印刷は、一般的な要件です。しかし、多くの開発者が実装しています...

ブラウザ開発者ツールを使用してJavaScriptコードを効果的にデバッグするにはどうすればよいですか? ブラウザ開発者ツールを使用してJavaScriptコードを効果的にデバッグするにはどうすればよいですか? Mar 18, 2025 pm 03:16 PM

この記事では、ブラウザ開発者ツールを使用した効果的なJavaScriptデバッグについて説明し、ブレークポイントの設定、コンソールの使用、パフォーマンスの分析に焦点を当てています。

ソースマップを使用して、マイナイドJavaScriptコードをデバッグするにはどうすればよいですか? ソースマップを使用して、マイナイドJavaScriptコードをデバッグするにはどうすればよいですか? Mar 18, 2025 pm 03:17 PM

この記事では、ソースマップを使用して、元のコードにマッピングすることにより、Minified JavaScriptをデバッグする方法について説明します。ソースマップの有効化、ブレークポイントの設定、Chrome DevtoolsやWebpackなどのツールの使用について説明します。

Javaのコレクションフレームワークを効果的に使用するにはどうすればよいですか? Javaのコレクションフレームワークを効果的に使用するにはどうすればよいですか? Mar 13, 2025 pm 12:28 PM

この記事では、Javaのコレクションフレームワークの効果的な使用について説明します。 データ構造、パフォーマンスのニーズ、スレッドの安全性に基づいて、適切なコレクション(リスト、セット、マップ、キュー)の選択を強調しています。 コレクションの使用を効率的に最適化します

初心者向けのタイプスクリプト、パート2:基本データ型 初心者向けのタイプスクリプト、パート2:基本データ型 Mar 19, 2025 am 09:10 AM

エントリーレベルのタイプスクリプトチュートリアルをマスターしたら、TypeScriptをサポートするIDEで独自のコードを作成し、JavaScriptにコンパイルできるはずです。このチュートリアルは、TypeScriptのさまざまなデータ型に飛び込みます。 JavaScriptには、NULL、未定義、ブール値、数字、文字列、シンボル(ES6によって導入)とオブジェクトの7つのデータ型があります。 TypeScriptはこれに基づいてより多くのタイプを定義し、このチュートリアルではすべてを詳細に説明します。 ヌルデータ型 JavaScriptのように、Typescriptのnull

chart.js:パイ、ドーナツ、バブルチャートを始めます chart.js:パイ、ドーナツ、バブルチャートを始めます Mar 15, 2025 am 09:19 AM

このチュートリアルでは、chart.jsを使用してパイ、リング、およびバブルチャートを作成する方法について説明します。以前は、4つのチャートタイプのchart.js:ラインチャートとバーチャート(チュートリアル2)、およびレーダーチャートと極地域チャート(チュートリアル3)を学びました。 パイとリングチャートを作成します パイチャートとリングチャートは、さまざまな部分に分かれている全体の割合を示すのに理想的です。たとえば、パイチャートを使用して、サファリの男性ライオン、女性ライオン、若いライオンの割合、または異なる候補者が選挙で受け取る票の割合を示すことができます。 パイチャートは、単一のパラメーターまたはデータセットの比較にのみ適しています。パイチャートのファンの角度はデータポイントの数値サイズに依存するため、パイチャートは値のあるエンティティをゼロ値で描画できないことに注意してください。これは、割合がゼロのエンティティを意味します

See all articles