重要
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 出力は、例を実行する日付によって異なる場合があります。