スクリプトに外部ファイルとモジュールを含める
重要
Node.js、モジュール、 require() の完全な説明 関数は、このチュートリアルの範囲外です。詳しくは、 Node.js のドキュメント を参照してください。
mongosh
インタラクションでファイルとモジュールを使用するには、 require() 関数を使用します。
mongosh
スクリプトでは、次のことを要求できます。
ローカル ファイル
Node.js 組み込みモジュール
External (npm) Node.js modules
ローカル ファイルが必要
追加の設定や構成なしで、 mongosh
スクリプトで JavaScript ファイルを使用できます。
注意
mongosh
では、 require()
を使用してインポートされたファイルは実行されません。 代わりに、 mongosh
はインポートされたファイルのすべてを現在の実行スコープに追加します。
例
現在の作業ディレクトリにあるtest.js
という名前のファイルを含めるには、次のいずれかのコマンドを使用します。
require('./tests.js')
var tests = require('./tests.js')
組み込みモジュールが必要
組み込みの Node.js モジュール( fs )を追加する設定や構成なしで、 の を使用します。mongosh
例
次の例では、以下のようなスクリプトを作成して実行します。
デフォルト ポートで実行されているローカル配置に接続します。
myDatabase.employees
コレクションにサンプル データを入力します。fs
モジュールを使用して、myDatabase.employees
コレクションからemployee.json
という名前のファイルにドキュメントを書込みます。
次の内容で
employee-to-text-file.js
という名前のファイルを作成します。const fs = require('fs'); db = connect('mongodb://localhost/myDatabase'); db.employees.insertMany( [ { "name": "Alice", "department": "engineering" }, { "name": "Bob", "department": "sales" }, { "name": "Carol", "department": "finance" } ] ) const document = db.employees.findOne(); fs.writeFileSync('employee.json', JSON.stringify(document)); employee-to-text-file.js
ファイルを読み込んで実行するには、mongosh
から次のコマンドを実行します。load("employee-to-text-file.js") データが ファイルに書き込まれたことを確認するには、
employee.json
ファイルを開きます。
npm モジュールが必要
Node.js モジュール( npm からダウンロードしたものなど)を要求できます )。外部モジュールを使用するには、次のいずれかのモジュールをインストールする必要があります。
グローバル
現在の作業ディレクトリの
node_modules
ディレクトリ内。
Node.js モジュールには 2 つのパッケージ化標準があります。
パッケージング標準 | require() との連携 |
---|---|
CommonJS (CJS) | はい |
ECMAScript Module (ES Module) | No |
mongosh
では ES モジュールをrequire()
できません。 ES モジュールの機能を使用する場合は、代わりに使用できる CommonJS バージョンがあるかどうかを確認してください。 詳しくは、以下を参照してください。
Tip
この構造を使用してリモート npm モジュールを要求できます。
const localRequire = require('module').createRequire(__filename);
例については、 index.js resumetoken
を参照してください スニペットに含まれる文字列。
例
重要
この例を実行するには、 date-f node_modules
コマンド をインストールする必要があります グローバル、または現在の作業ディレクトリ内の ディレクトリ内のいずれかのモジュールに接続します。
次の例では、以下のようなスクリプトを作成して実行します。
デフォルト ポートで実行されているローカル配置に接続します。
myDatabase.cakeSales
コレクションにサンプル データを入力します。date-fnd を使用 日付の形式を設定するモジュール。
次の内容で
date-fns-formatting.js
という名前のファイルを作成します。const formatDistance = require('date-fns/formatDistance') db = connect('mongodb://localhost/myDatabase'); db.cakeSales.insertMany( [ { _id: 0, type: "chocolate", orderDate: new Date("2020-05-18T14:10:30Z"), state: "CA", price: 13, quantity: 120 }, { _id: 1, type: "chocolate", orderDate: new Date("2021-03-20T11:30:05Z"), state: "WA", price: 14, quantity: 140 }, { _id: 2, type: "vanilla", orderDate: new Date("2021-01-11T06:31:15Z"), state: "CA", price: 12, quantity: 145 }, { _id: 3, type: "vanilla", orderDate: new Date("2020-02-08T13:13:23Z"), state: "WA", price: 13, quantity: 104 }, { _id: 4, type: "strawberry", orderDate: new Date("2019-05-18T16:09:01Z"), state: "CA", price: 41, quantity: 162 }, { _id: 5, type: "strawberry", orderDate: new Date("2019-01-08T06:12:03Z"), state: "WA", price: 43, quantity: 134 } ] ) const saleDate0 = db.cakeSales.findOne( { _id: 0 } ).orderDate const saleDate1 = db.cakeSales.findOne( { _id: 1 } ).orderDate const saleDateDistance0 = formatDistance(saleDate0, new Date(), { addSuffix: true }) const saleDateDistance1 = formatDistance(saleDate1, new Date(), { addSuffix: true }) print("{ _id: 0 } orderDate was " + saleDateDistance0) print("{ _id: 1 } orderDate was " + saleDateDistance1) date-fns-formatting.js
ファイルを読み込んで実行するには、mongosh
から次のコマンドを実行します。load("date-fns-formatting.js") mongosh
は、次のようなものを出力します。{ _id: 0 } orderDate was over 1 year ago { _id: 1 } orderDate was 7 months ago 出力は、例を実行する日付によって異なる場合があります。