Mongoose


Mongoose()

パラメータ

Mongoose コンストラクタ。

mongoose モジュールの exports オブジェクトはこのクラスのインスタンスです。ほとんどのアプリケーションはこのインスタンスを1つだけ使用します。

const mongoose = require('mongoose');
mongoose instanceof mongoose.Mongoose; // true

// Create a new Mongoose instance with its own `connect()`, `set()`, `model()`, etc.
const m = new mongoose.Mongoose();

Mongoose.prototype.Aggregate()

Mongoose Aggregate コンストラクタ


Mongoose.prototype.CastError()

パラメータ
  • type «String» 型の名前

  • value «Any» キャストに失敗した値

  • path «String» このキャストエラーが発生したドキュメント内のパス a.b.c

  • [reason] «Error» スローされた元のエラー

Mongoose CastError コンストラクタ


Mongoose.prototype.Collection()

Mongoose Collection コンストラクタ


Mongoose.prototype.Connection()

Mongoose Connection コンストラクタ


Mongoose.prototype.ConnectionStates

  • «プロパティ»

ユーザーランド向けに接続状態を公開します。


Mongoose.prototype.Date

  • «プロパティ»

Mongoose Date SchemaType です。

const schema = new Schema({ test: Date });
schema.path('test') instanceof mongoose.Date; // true

Mongoose.prototype.Decimal128

  • «プロパティ»

Mongoose Decimal128 SchemaType です。スキーマ内で 128ビット10進浮動小数点数 であるべきパスを宣言するために使用します。新しい Decimal128 インスタンスを作成するためにこれを使用しないでください。代わりに mongoose.Types.Decimal128 を使用してください。

const vehicleSchema = new Schema({ fuelLevel: mongoose.Decimal128 });

Mongoose.prototype.Document()

Mongoose Document コンストラクタ。


Mongoose.prototype.DocumentProvider()

Mongoose DocumentProvider コンストラクタ。Mongoose ユーザーはこれを直接使用する必要はありません。


Mongoose.prototype.Error()

MongooseError コンストラクタ。


Mongoose.prototype.Mixed

  • «プロパティ»

Mongoose Mixed SchemaType です。Mongoose の変更追跡、キャスティング、および検証が無視する必要があるスキーマ内のパスを宣言するために使用します。

const schema = new Schema({ arbitrary: mongoose.Mixed });

Mongoose.prototype.Model()

Mongoose Model コンストラクタ。


Mongoose.prototype.Mongoose()

Mongoose コンストラクタ

mongoose モジュールのエクスポートはこのクラスのインスタンスです。

const mongoose = require('mongoose');
const mongoose2 = new mongoose.Mongoose();

Mongoose.prototype.Number

  • «プロパティ»

Mongoose Number SchemaType です。Mongoose が数値にキャストする必要があるスキーマ内のパスを宣言するために使用します。

const schema = new Schema({ num: mongoose.Number });
// Equivalent to:
const schema = new Schema({ num: 'number' });

Mongoose.prototype.ObjectId

  • «プロパティ»

Mongoose ObjectId SchemaType です。スキーマ内で MongoDB ObjectId であるべきパスを宣言するために使用します。新しい ObjectId インスタンスを作成するためにこれを使用しないでください。代わりに mongoose.Types.ObjectId を使用してください。

const childSchema = new Schema({ parentId: mongoose.ObjectId });

Mongoose.prototype.Query()

Mongoose Query コンストラクタ。


Mongoose.prototype.STATES

  • «プロパティ»

ユーザーランド向けに接続状態を公開します。


Mongoose.prototype.Schema()

Mongoose Schema コンストラクタ

const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const CatSchema = new Schema(..);

Mongoose.prototype.SchemaType()

Mongoose SchemaType コンストラクタ


Mongoose.prototype.SchemaTypeOptions()

スキーマタイプオプションに使用されるコンストラクタ


Mongoose.prototype.SchemaTypes

  • «プロパティ»
参照

さまざまな Mongoose SchemaTypes。

注記

後方互換性のために mongoose.Schema.Types のエイリアスです。


Mongoose.prototype.Types

  • «プロパティ»

さまざまな Mongoose タイプ。

const mongoose = require('mongoose');
const array = mongoose.Types.Array;

タイプ

ObjectId タイプへのこの公開アクセスを使用して、オンデマンドで ID を構築できます。

const ObjectId = mongoose.Types.ObjectId;
const id1 = new ObjectId;

Mongoose.prototype.VirtualType()

Mongoose VirtualType コンストラクタ


Mongoose.prototype.connect()

パラメータ
  • uri «String» 接続先の mongodb URI

  • [options] «Object» MongoDB ドライバーの connect() 関数 に渡されるオプション。ただし、以下で説明する4つの Mongoose 固有のオプションは除きます。

    • [options.bufferCommands=true] «Boolean» Mongoose 固有のオプション。false に設定すると、この接続に関連付けられているすべてのモデルのバッファリングが無効になります。バッファリングを無効にするを参照してください。

    • [options.bufferTimeoutMS=10000] «Boolean» Mongoose 固有のオプション。 bufferCommands が true の場合、操作がまだバッファされている場合、Mongoose は bufferTimeoutMS 後にエラーをスローします。

    • [options.dbName] «String» 使用するデータベースの名前。指定しない場合、接続文字列からデータベース名を使用します。

    • [options.user] «String» 認証のユーザー名。options.auth.user と同等です。後方互換性のために維持されています。

    • [options.pass] «String» 認証のパスワード。options.auth.password と同等です。後方互換性のために維持されています。

    • [options.maxPoolSize=100] «Number» MongoDB ドライバーがこの接続に対して開いたままにするソケットの最大数。MongoDB は一度に1つのソケットにつき1つの操作のみを許可しているため、高速なクエリが遅いクエリによってブロックされていることが判明した場合、これを増やす必要がある場合があります。MongoDB と Node.js の低速な処理を参照してください。

    • [options.minPoolSize=0] «Number» MongoDB ドライバーがこの接続に対して開いたままにするソケットの最小数。

    • [options.serverSelectionTimeoutMS] «Number» useUnifiedTopology = true の場合、MongoDB ドライバーは任意の操作を送信するサーバーを見つけようと試み、エラーが発生するまで serverSelectionTimeoutMS ミリ秒間再試行し続けます。設定されていない場合、MongoDB ドライバーはデフォルトで 30000(30秒)を使用します。

    • [options.heartbeatFrequencyMS] «Number» useUnifiedTopology = true の場合、MongoDB ドライバーは接続の状態を確認するために heartbeatFrequencyMS ごとにハートビートを送信します。ハートビートは serverSelectionTimeoutMS の対象となるため、MongoDB ドライバーはデフォルトで最大30秒間、失敗したハートビートを再試行します。Mongoose はハートビートが失敗した後でのみ 'disconnected' イベントを発行するため、サーバーがダウンしてから Mongoose が 'disconnected' を発行するまでの時間を短縮するために、この設定を小さくすることをお勧めします。この設定を 1000 未満に設定することは**お勧めしません**。ハートビートが多すぎると、パフォーマンスが低下する可能性があります。

    • [options.autoIndex=true] «Boolean» Mongoose 固有のオプション。false に設定すると、この接続に関連付けられているすべてのモデルの自動インデックス作成が無効になります。

    • [options.socketTimeoutMS=0] «Number» 初期接続後に、MongoDB ドライバーが非アクティブが原因でソケットを強制終了するまで待機する時間。ソケットが非アクティブになるのは、アクティビティがないか、長時間実行される操作が原因である可能性があります。 socketTimeoutMS のデフォルトは 0 で、これは Node.js が非アクティブが原因でソケットをタイムアウトしないことを意味します。このオプションは、MongoDB ドライバーが正常に完了した後、Node.js socket#setTimeout() 関数 に渡されます。

    • [options.family=0] «Number» Node.js の dns.lookup() 関数に透過的に渡されます。 04、または 6 のいずれかになります。 4 は IPv4 のみを使用することを意味し、6 は IPv6 のみを使用することを意味し、0 は両方試すことを意味します。

    • [options.autoCreate=false] «Boolean» true に設定すると、この接続で作成されたすべてのモデルに対して Mongoose が自動的に createCollection() を呼び出します。

  • [callback] «Function»
戻り値
  • «Promise» 接続が成功した場合、this に解決されます。
参照

デフォルトの mongoose 接続を開きます。

mongoose.connect('mongodb://user:pass@127.0.0.1:port/database');

// replica sets
const uri = 'mongodb://user:pass@127.0.0.1:port,anotherhost:port,yetanother:port/mydatabase';
mongoose.connect(uri);

// with options
mongoose.connect(uri, options);

// Using `await` throws "MongooseServerSelectionError: Server selection timed out after 30000 ms"
// if Mongoose can't connect.
const uri = 'mongodb://nonexistent.domain:27000';
await mongoose.connect(uri);

Mongoose.prototype.connection

  • «Connection»

Mongoose モジュールのデフォルト接続。mongoose.connections[0] と同等です。connections を参照してください。

const mongoose = require('mongoose');
mongoose.connect(...);
mongoose.connection.on('error', cb);

これは、mongoose.model を使用して作成されたすべてのモデルにデフォルトで使用される接続です。

新しい接続を作成するには、createConnection() を使用します。


Mongoose.prototype.connections

  • «Array»

この Mongoose インスタンスに関連付けられているすべての 接続 を含む配列。デフォルトでは、接続は1つです。createConnection() を呼び出すと、この配列に接続が追加されます。

const mongoose = require('mongoose');
mongoose.connections.length; // 1, just the default connection
mongoose.connections[0] === mongoose.connection; // true

mongoose.createConnection('mongodb://127.0.0.1:27017/test');
mongoose.connections.length; // 2

Mongoose.prototype.createConnection()

パラメータ
  • uri «String» 接続先の mongodb URI

  • [options] «Object» MongoDB ドライバーの connect() 関数 に渡されるオプション。ただし、以下で説明する4つの Mongoose 固有のオプションは除きます。

    • [options.bufferCommands=true] «Boolean» Mongoose 固有のオプション。false に設定すると、この接続に関連付けられているすべてのモデルのバッファリングが無効になります。バッファリングを無効にするを参照してください。

    • [options.dbName] «String» 使用するデータベースの名前。指定しない場合、Mongoose は接続文字列からデータベース名を使用します。

    • [options.user] «String» 認証のユーザー名。options.auth.user と同等です。後方互換性のために維持されています。

    • [options.pass] «String» 認証のパスワード。options.auth.password と同等です。後方互換性のために維持されています。

    • [options.autoIndex=true] «Boolean» Mongoose 固有のオプション。false に設定すると、この接続に関連付けられているすべてのモデルの自動インデックス作成が無効になります。

    • [options.maxPoolSize=5] «Number» MongoDB ドライバーがこの接続に対して開いたままにするソケットの最大数。MongoDB は一度に1つのソケットにつき1つの操作のみを許可しているため、高速なクエリが遅いクエリによってブロックされていることが判明した場合、これを増やす必要がある場合があります。MongoDB と Node.js の低速な処理を参照してください。

    • [options.minPoolSize=1] «Number» MongoDB ドライバーがこの接続に対して開いたままにするソケットの最小数。MongoDB は一度に1つのソケットにつき1つの操作のみを許可しているため、高速なクエリが遅いクエリによってブロックされていることが判明した場合、これを増やす必要がある場合があります。MongoDB と Node.js の低速な処理を参照してください。

    • [options.socketTimeoutMS=0] «Number» 初期接続後に、MongoDB ドライバーが非アクティブが原因でソケットを強制終了するまで待機する時間。デフォルトは 0 で、これは Node.js が非アクティブが原因でソケットをタイムアウトしないことを意味します。ソケットが非アクティブになるのは、アクティビティがないか、長時間実行される操作が原因である可能性があります。このオプションは、MongoDB ドライバーが正常に完了した後、Node.js socket#setTimeout() 関数 に渡されます。

    • [options.family=0] «Number» Node.js の dns.lookup() 関数に透過的に渡されます。 04、または 6 のいずれかになります。 4 は IPv4 のみを使用することを意味し、6 は IPv6 のみを使用することを意味し、0 は両方試すことを意味します。

戻り値
  • «Connection» 作成された Connection オブジェクト。Connection は thenable ではないため、await mongoose.createConnection() はできません。待機するには、代わりに mongoose.createConnection(uri).asPromise() を使用してください。

Connection インスタンスを作成します。

connection インスタンスは単一のデータベースにマップされます。このメソッドは、複数のデータベース接続を管理する場合に役立ちます。

渡されたオプションは、接続文字列に含まれるオプションよりも優先されます。

// with mongodb:// URI
db = mongoose.createConnection('mongodb://user:pass@127.0.0.1:port/database');

// and options
const opts = { db: { native_parser: true }}
db = mongoose.createConnection('mongodb://user:pass@127.0.0.1:port/database', opts);

// replica sets
db = mongoose.createConnection('mongodb://user:pass@127.0.0.1:port,anotherhost:port,yetanother:port/database');

// and options
const opts = { replset: { strategy: 'ping', rs_name: 'testSet' }}
db = mongoose.createConnection('mongodb://user:pass@127.0.0.1:port,anotherhost:port,yetanother:port/database', opts);

// initialize now, connect later
db = mongoose.createConnection();
await db.openUri('mongodb://127.0.0.1:27017/database');

Mongoose.prototype.deleteModel()

パラメータ
  • name «String|RegExp» 文字列の場合、削除するモデルの名前。正規表現の場合、名前に正規表現が一致するすべてのモデルを削除します。

戻り値
  • «Mongoose» this

デフォルトのコネクションから、name という名前のモデルが存在する場合は削除します。この関数を使用して、テストで作成したモデルをクリーンアップし、OverwriteModelErrors を防ぐことができます。

mongoose.connection.deleteModel(name) と同等です。

mongoose.model('User', new Schema({ name: String }));
console.log(mongoose.model('User')); // Model object
mongoose.deleteModel('User');
console.log(mongoose.model('User')); // undefined

// Usually useful in a Mocha `afterEach()` hook
afterEach(function() {
  mongoose.deleteModel(/.+/); // Delete every model
});

Mongoose.prototype.disconnect()

戻り値
  • «Promise» すべてのコネクションが閉じられたときに解決するか、発生した最初のエラーで拒否します。

すべてのコネクションで .close() を並列実行します。


Mongoose.prototype.driver

~非推奨~
  • «プロパティ»

この Mongoose インスタンスがデータベースとの通信に使用する基礎となるドライバを含む、get()set() を持つオブジェクト。ドライバは、find() などの関数を定義する Mongoose 固有のインターフェースです。


Mongoose.prototype.get()

パラメータ
  • key «String»

mongoose オプションを取得します。

mongoose.get('test') // returns the 'test' value

Mongoose.prototype.isObjectIdOrHexString()

パラメータ
  • v «Any»

指定された値が Mongoose ObjectId(instanceof を使用)である場合、または指定された値が 24 文字の16進数文字列(ObjectId の最も一般的な文字列表現)である場合、true を返します。

この関数は isValidObjectId() と似ていますが、かなり厳密です。isValidObjectId() は、Mongoose が ObjectId に変換できる*任意*の値に対して true を返すためです。これには、Mongoose ドキュメント、長さ 12 の文字列、および任意の数が含まれます。isObjectIdOrHexString() は、ObjectId インスタンスまたは 24 文字の16進数文字列に対してのみ true を返し、数値、ドキュメント、および長さ 12 の文字列に対しては false を返します。

mongoose.isObjectIdOrHexString(new mongoose.Types.ObjectId()); // true
mongoose.isObjectIdOrHexString('62261a65d66c6be0a63c051f'); // true

mongoose.isObjectIdOrHexString('0123456789ab'); // false
mongoose.isObjectIdOrHexString(6); // false
mongoose.isObjectIdOrHexString(new User({ name: 'test' })); // false
mongoose.isObjectIdOrHexString({ test: 42 }); // false

Mongoose.prototype.isValidObjectId()

パラメータ
  • v «Any»

Mongoose が指定された値を ObjectId にキャストできる場合は true を返し、そうでない場合は false を返します。

mongoose.isValidObjectId(new mongoose.Types.ObjectId()); // true
mongoose.isValidObjectId('0123456789ab'); // true
mongoose.isValidObjectId(6); // true
mongoose.isValidObjectId(new User({ name: 'test' })); // true

mongoose.isValidObjectId({ test: 42 }); // false

Mongoose.prototype.model()

パラメータ
  • name «String|Function» モデル名または Model を拡張するクラス

  • [schema] «Schema» 使用するスキーマ。

  • [collection] «String» 名前(オプション、モデル名から推測されます)

  • [options] «Object»
    • [options.overwriteModels=false] «Boolean» true の場合、OverwriteModelError を回避するために、同じ名前の既存のモデルを上書きします。

戻り値
  • «Model» name に関連付けられたモデル。Mongoose は、モデルが存在しない場合は作成します。

モデルを定義または取得します。

mongoose インスタンスで定義されたモデルは、同じ mongoose インスタンスによって作成されたすべてのコネクションで使用できます。

同じ名前で異なるスキーマを使用して mongoose.model() を 2 回呼び出すと、OverwriteModelError が発生します。同じ名前とスキーマで mongoose.model() を呼び出すと、同じスキーマが返されます。

const mongoose = require('mongoose');

// define an Actor model with this mongoose instance
const schema = new Schema({ name: String });
mongoose.model('Actor', schema);

// create a new connection
const conn = mongoose.createConnection(..);

// create Actor model
const Actor = conn.model('Actor', schema);
conn.model('Actor') === Actor; // true
conn.model('Actor', schema) === Actor; // true, same schema
conn.model('Actor', schema, 'actors') === Actor; // true, same schema and collection name

// This throws an `OverwriteModelError` because the schema is different.
conn.model('Actor', new Schema({ name: String }));

collection 引数が渡されない場合、Mongoose はモデル名を使用します。この動作が気に入らない場合は、コレクション名を渡すか、mongoose.pluralize() を使用するか、スキーマのコレクション名オプションを設定してください。

const schema = new Schema({ name: String }, { collection: 'actor' });

// or

schema.set('collection', 'actor');

// or

const collectionName = 'actor';
const M = mongoose.model('Actor', schema, collectionName);

Mongoose.prototype.modelNames()

戻り値
  • «Array»

この Mongoose インスタンスで作成されたモデル名の配列を返します。

注記

connection.model() を使用して作成されたモデルの名前は含まれません。


Mongoose.prototype.mquery

  • «プロパティ»

Mongoose が使用する mquery クエリビルダー。


Mongoose.prototype.now()

Mongoose はこの関数を使用して、タイムスタンプ を設定する際の現在の時刻を取得します。テストのために、Sinon などのツールを使用してこの関数をスタブアウトできます。


Mongoose.prototype.omitUndefined()

パラメータ
  • [val] «Object» 未定義のキーを削除するオブジェクト

オブジェクトを受け取り、値が厳密に undefined と等しいオブジェクトからキーを削除します。 Mongoose は TestModel.find({ name: undefined })TestModel.find({ name: null }) として扱うため、この関数はクエリフィルターに役立ちます。

const filter = { name: 'John', age: undefined, status: 'active' };
mongoose.omitUndefined(filter); // { name: 'John', status: 'active' }
filter; // { name: 'John', status: 'active' }

await UserModel.findOne(mongoose.omitUndefined(filter));

Mongoose.prototype.overwriteMiddlewareResult()

パラメータ
  • result «any»

post() ミドルウェアでこの関数を使用して結果を置き換えます。

schema.post('find', function(res) {
  // Normally you have to modify `res` in place. But with
  // `overwriteMiddlewarResult()`, you can make `find()` return a
  // completely different value.
  return mongoose.overwriteMiddlewareResult(res.filter(doc => !doc.isDeleted));
});

Mongoose.prototype.plugin()

パラメータ
  • fn «Function» プラグインコールバック

  • [opts] «Object» オプションのオプション

戻り値
  • «Mongoose» this
参照

すべてのスキーマで実行されるグローバルプラグインを宣言します。

作成する各スキーマで .plugin(fn) を呼び出すことと同等です。


Mongoose.prototype.pluralize()

パラメータ
  • [fn] «Function|null» コレクション名を複数形にするために使用される関数を上書きします

戻り値
  • «Function,null» コレクション名を複数形にするために現在使用されている関数。デフォルトは mongoose-legacy-pluralize のレガシー関数です。

コレクション名を複数形にするための関数のゲッター/セッター。


Mongoose.prototype.sanitizeFilter()

パラメータ
  • filter «Object»

名前が `$` で始まるプロパティを持つネストされたオブジェクトを `$eq` でラップすることにより、クエリセレクターインジェクション攻撃 に対してクエリフィルターをサニタイズします。

const obj = { username: 'val', pwd: { $ne: null } };
sanitizeFilter(obj);
obj; // { username: 'val', pwd: { $eq: { $ne: null } } });

Mongoose.prototype.set()

パラメータ
  • key «String|Object» オプションの名前または複数のキーと値のペアのオブジェクト

  • value «String|Function|Boolean» オプションの値。「key」がオブジェクトの場合は使用されません

mongoose オプションを設定します。

key は、一度に複数のオプションを設定するためのオブジェクトとして使用できます。 1 つのオプションでエラーがスローされた場合でも、他のオプションは評価されます。

mongoose.set('test', value) // sets the 'test' option to `value`

mongoose.set('debug', true) // enable logging collection methods + arguments to the console/file

mongoose.set('debug', function(collectionName, methodName, ...methodArgs) {}); // use custom function to log collection methods + arguments

mongoose.set({ debug: true, autoIndex: false }); // set multiple options at once

現在サポートされているオプションは次のとおりです。

  • allowDiskUsetrue に設定すると、すべての集計操作でデフォルトで allowDiskUse が true に設定されます。
  • applyPluginsToChildSchemas:デフォルトは `true` です。false に設定すると、グローバルプラグインが子スキーマに適用されなくなります。
  • applyPluginsToDiscriminators:デフォルトは `false` です。true に設定すると、グローバルプラグインがディスクリミネータースキーマに適用されます。通常、これは必要ありません。プラグインは基本スキーマに適用され、ディスクリミネーターは基本スキーマからすべてのミドルウェア、メソッド、静的プロパティ、およびプロパティをコピーするためです。
  • autoCreatetrue に設定すると、mongoose.model() または conn.model() でモデルを作成するときに、Mongoose が Model.createCollection() を自動的に呼び出します。これは、トランザクション、変更ストリーム、およびコレクションが存在する必要があるその他の機能をテストするのに役立ちます。
  • autoIndex:デフォルトは `true` です。false に設定すると、この Mongoose インスタンスに関連付けられているすべてのモデルの自動インデックス作成が無効になります。
  • bufferCommands:すべてのコネクションとモデルの mongoose のバッファリングメカニズムを有効/無効にします。
  • bufferTimeoutMS:bufferCommands がオンの場合、このオプションは、Mongoose バッファリングがエラーをスローするまで待機する最大時間を設定します。指定しない場合、Mongoose は 10000(10 秒)を使用します。
  • cloneSchemas:デフォルトは `false` です。true に設定すると、モデルにコンパイルする前にすべてのスキーマが clone() されます。
  • debug: `true` の場合、mongoose が MongoDB に送信する操作をコンソールに出力します。書き込み可能なストリームが渡された場合、カラー化なしでそのストリームにログを記録します。 コールバック関数が渡された場合、コレクション名、メソッド名、メソッドに渡されたすべての引数をこの順序で受け取ります。 たとえば、デフォルトのログを複製する場合、コールバック `Mongoose: ${collectionName}.${methodName}(${methodArgs.join(', ')})` から出力できます。
  • idtrue の場合、スキーマごとに上書きされない限り、すべてのスキーマに id 仮想フィールドを追加します。
  • timestamps.createdAt.immutable: デフォルトは `true` です。 `false` の場合、`createdAt` フィールドは `immutable: false` に変更されます。これは `createdAt` を更新できることを意味します。
  • maxTimeMS:設定されている場合、maxTimeMS をすべてのクエリに添付します。
  • objectIdGetter:デフォルトは `true` です。Mongoose は、populate での利便性のために `this` を返す `_id` と呼ばれる MongoDB ObjectId にゲッターを追加します。 このゲッターを削除するには、false に設定します。
  • overwriteModelstrue に設定すると、mongoose.model() を呼び出すときに、同じ名前のモデルを上書きすることがデフォルトになります。OverwriteModelError をスローするのではなく。
  • returnOriginalfalse の場合、findOneAndUpdate()findByIdAndUpdate、および findOneAndReplace() のデフォルトの returnOriginal オプションを false に変更します。これは、デフォルトで findOneAndX() 呼び出しの `new` オプションを `true` に設定することと同じです。詳細については、`findOneAndUpdate()` チュートリアル を読んでください。
  • runValidators:デフォルトは `false` です。true に設定すると、デフォルトですべてのバリデーターに対して 更新バリデーター が有効になります。
  • sanitizeFilter:デフォルトは `false` です。true に設定すると、名前が `$` で始まるプロパティを持つネストされたオブジェクトを `$eq` でラップすることにより、クエリフィルターのサニタイズ を有効にして、クエリセレクターインジェクション攻撃を防ぎます。
  • selectPopulatedPaths:デフォルトは `true` です。false に設定すると、`populate()` するすべてのフィールドを Mongoose が `select()` に追加することをオプトアウトします。スキーマレベルのオプション `selectPopulatedPaths` はこれを上書きします。
  • strict:デフォルトは `true` で、`false`、`true`、または `'throw'` です。スキーマのデフォルトの厳密モードを設定します。
  • strictQuery:デフォルトは `false` です。 `false`、`true`、または `'throw'` です。スキーマのデフォルトの strictQuery モードを設定します。
  • toJSON:デフォルトは `{ transform: true, flattenDecimals: true }` です。`toJSON()` へのデフォルトオブジェクトを上書きし、`JSON.stringify()` によって Mongoose ドキュメントがどのようにシリアル化されるかを決定します。
  • toObject:デフォルトは `{ transform: true, flattenDecimals: true }` です。`toObject()` へのデフォルトオブジェクトを上書きします。

Mongoose.prototype.setDriver()

この Mongoose インスタンスで使用される現在のドライバを上書きします。ドライバは、`find()` などの関数を定義する Mongoose 固有のインターフェースです。


Mongoose.prototype.skipMiddlewareFunction()

パラメータ
  • result «any»

`pre()` ミドルウェアでこの関数を使用して、ラップされた関数の呼び出しをスキップします。

schema.pre('save', function() {
  // Will skip executing `save()`, but will execute post hooks as if
  // `save()` had executed with the result `{ matchedCount: 0 }`
  return mongoose.skipMiddlewareFunction({ matchedCount: 0 });
});

Mongoose.prototype.startSession()

パラメータ
  • [options] «Object» mongodb ドライバオプション を参照してください。

    • [options.causalConsistency=true] «Boolean» false に設定すると、因果整合性が無効になります。

  • [callback] «Function»
戻り値
  • «Promise<ClientSession>» MongoDB ドライバ `ClientSession` に解決される promise

*MongoDB>= 3.6.0が必要です。* 因果整合性、再試行可能な書き込みトランザクション などの利点のために、MongoDB セッション を開始します。

mongoose.startSession() を呼び出すことは、mongoose.connection.startSession() を呼び出すことと同等です。セッションはコネクションのスコープであるため、mongoose.startSession() を呼び出すと、デフォルトの mongoose コネクション でセッションが開始されます。


Mongoose.prototype.syncIndexes()

パラメータ
  • options «Object»
  • options.continueOnError «Boolean» デフォルトは `false` です。`true` に設定すると、1 つのモデルの同期が失敗した場合でも mongoose はエラーをスローせず、キーがモデルの名前、値が各モデルの結果/エラーであるオブジェクトを返します。

戻り値
  • «Promise» Promise を返します。Promise が解決されると、値は削除されたインデックスのリストになります。

このコネクションに登録されているモデルのすべてのインデックスを同期します。


Mongoose.prototype.trusted()

パラメータ
  • obj «Object»

潜在的な クエリセレクターインジェクション攻撃 をフィルタリングするときに、指定されたオブジェクトをスキップするように sanitizeFilter() に指示します。 使用する既知のクエリセレクターがある場合は、このメソッドを使用します。

const obj = { username: 'val', pwd: trusted({ $type: 'string', $eq: 'my secret' }) };
sanitizeFilter(obj);

// Note that `sanitizeFilter()` did not add `$eq` around `$type`.
obj; // { username: 'val', pwd: { $type: 'string', $eq: 'my secret' } });

Mongoose.prototype.version

  • «プロパティ»

Mongoose のバージョン

console.log(mongoose.version); // '5.x.x'