Docs Menu
Docs Home
/ / /
Node.js
/ / /

カスタム値の生成 _id

項目一覧

  • Overview
  • プライマリキー ファクトリを指定する
  • 詳細情報

このガイドでは、MongoDB Node.js ドライバーを使用して、プライマリキー ファクトリを使用して独自の _id 値を生成する方法を学習します。

プライマリキー ファクトリを使用すると、 挿入操作中に_idを指定しないことを選択した場合に、ドキュメント内に一意の識別子を作成できます。 デフォルトのプライマリキー ファクトリはObjectId値を生成します。

注意

Upsert 操作

ドライバーは、プライマリキー ファクトリを適用するかどうかを判断できないため、upsert 操作 にプライマリキー ファクトリを使用しません。upsert 操作でプライマリキー ファクトリを指定し、挿入操作を実行すると、サーバーはそのドキュメントに対して ObjectId を自動生成します。

指定したプライマリキー ファクトリを使用する場合は、検索操作を実行してから、更新または 挿入 操作を実行します。

プライマリキー ファクトリを指定するには、MongoClient インスタンスに pkFactory オプションを適用します。

次のコード スニペットは、pkFactory オプションを適用して、uuid 型の _id 値を生成します。

const { UUID } = require('bson');
...
const client = new MongoClient(uri, {
pkFactory: { createPk: () => new UUID().toBinary() }
});

注意

データの整合性

プライマリキー ファクトリで指定された型とは異なる型の _id フィールドを持つドキュメントを挿入すると、データの不整合が発生します。

たとえば、uuid 型を生成する主キー ファクトリで次の挿入操作を実行すると、_id 値には uuid 型と string 型の両方が含まれます。

myColl.insertOne({ _id: "user1388", ... });

このセクションで説明した型、インターフェース、クラスの詳細については、次のリソースを参照してください。

戻る

ドキュメントの挿入