重要
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')
組み込みモジュールが必要
mongosh では、追加のセットアップや構成なしで、組み込みNode.jsモジュール(fs など)を要求できます。
例
次の例では、以下のようなスクリプトを作成して実行します。
デフォルト ポートで実行されているローカル配置に接続します。
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() との連携 |
|---|---|
| はい |
| No |
mongoshでは ES モジュールをrequire()できません。 ES モジュールの機能を使用する場合は、代わりに使用できる CommonJS バージョンがあるかどうかを確認してください。 詳しくは、以下を参照してください。
Tip
この構造を使用してリモート npm モジュールを要求できます。
const localRequire = require('module').createRequire(__filename);
の例については、 スニペットのインデックス.js resumetokenを参照してください。
例
重要
この例を実行するには、 date-fms モジュールをグローバルに、または現在のnode_modules 作業ディレクトリ内の ディレクトリにインストールする必要があります。
次の例では、以下のようなスクリプトを作成して実行します。
デフォルト ポートで実行されているローカル配置に接続します。
myDatabase.cakeSalesコレクションにサンプル データを入力します。date-fms モジュールを使用して日付の形式を設定します。
次の内容で
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 出力は、例を実行する日付によって異なる場合があります。