Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Docs Menu
Docs Home
/ / /
Node.js ドライバー
/

_id のカスタム値の生成

このガイドでは、 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", ... });

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

  • pkFactory

  • _id フィールド

  • Update Documents

  • ドキュメントの検索

  • ドキュメントの変更

  • ドキュメントの挿入

戻る

CRUD操作の構成

項目一覧