php エディタ Xigua が、Mongodb 用の一意のペアインデックスを作成する方法を紹介します。 Mongodb は非リレーショナル データベースであり、ペア インデックスはコレクション内のドキュメント ペアの一意性を保証するために使用される特別なインデックス タイプです。一意のペア インデックスを作成するには、Mongodb の createIndex メソッドを使用し、インデックスのフィールドと一意性オプションを指定する必要があります。インデックスを正しく設定すると、重複データの挿入を効果的に回避し、データの一貫性と精度を向上させることができます。それでは具体的な手順を見ていきましょう!
mongodbを使用しており、2つのフィールドでペアを一意にしたいと考えています。
これまでに私がやったことは次のとおりです:
リーリーしかし、このように 2 つのレコードを挿入すると
リーリーデータベースにはレコードが 1 つだけあります
リーリー2 番目のものが最初のものを上書きしました
以下はレコードを挿入するためのサンプルコードです
func (repository *translationrepository) createindexes(collection *mongo.collection) error { models := []mongo.indexmodel{ { keys: bson.d{{"object_id", 1}, {"object_type", 1}}, options: options.index().setunique(true), }, { keys: bson.d{{"expire_at", 1}}, options: options.index().setexpireafterseconds(0), }, } opts := options.createindexes().setmaxtime(10 * time.second) _, err := collection.indexes().createmany(context.background(), models, opts) return err }
私があなたのシナリオを管理する必要があります。私が何を達成したかを示すための簡単なプログラムを共有しましょう。
リーリーここで、すべての主要な手順を説明します:
オブジェクト
構造の定義。これは必要なものの簡略化されたバージョンです。 bson
コメントの実際の使用に注意してください。このデモでは、json
を省略しても問題ありません。 demodb
という名前のデータベースと mycollection
という名前のコレクションを作成します。また、プログラムを終了するときにこれらを削除する呼び出しを延期します (クリーンアップのためだけです)。 object_id
および object_type
に一意の複合インデックスを作成します。 options
フィールドに注目してください。このフィールドは、setunique
メソッドを使用してインデックスの一意性を宣言します。 このデモがあなたの質問のいくつかに答えることを願っています。教えてください、そしてありがとう!
以上がMongodbの一意のペアインデックスを作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。