Mongodbの一意のペアインデックスを作成するにはどうすればよいですか?
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
を省略しても問題ありません。 - mongo エコシステムに関連する設定:
- コンテキストの作成 (タイムアウトあり)
- クライアント設定 (docker 経由で実行されているローカル mongodb インスタンスに接続)
-
demodb
という名前のデータベースとmycollection
という名前のコレクションを作成します。また、プログラムを終了するときにこれらを削除する呼び出しを延期します (クリーンアップのためだけです)。
- フィールド
object_id
およびobject_type
に一意の複合インデックスを作成します。options
フィールドに注目してください。このフィールドは、setunique
メソッドを使用してインデックスの一意性を宣言します。 - ドキュメントを追加します。このプログラムでは、同じフィールドを持つ 2 つのドキュメントを挿入することはできないことに注意してください。これらのケースをコメント/コメント解除して、再度確認してみてください。
- デバッグの目的で、コレクション内のドキュメントをリストし、2 番目のドキュメントが追加されたかどうかを確認することにしました。
このデモがあなたの質問のいくつかに答えることを願っています。教えてください、そしてありがとう!
以上がMongodbの一意のペアインデックスを作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









OpenSSLは、安全な通信で広く使用されているオープンソースライブラリとして、暗号化アルゴリズム、キー、証明書管理機能を提供します。ただし、その歴史的バージョンにはいくつかの既知のセキュリティの脆弱性があり、その一部は非常に有害です。この記事では、Debian SystemsのOpenSSLの共通の脆弱性と対応測定に焦点を当てます。 Debianopensslの既知の脆弱性:OpenSSLは、次のようないくつかの深刻な脆弱性を経験しています。攻撃者は、この脆弱性を、暗号化キーなどを含む、サーバー上の不正な読み取りの敏感な情報に使用できます。

この記事では、プロファイリングの有効化、データの収集、CPUやメモリの問題などの一般的なボトルネックの識別など、GOパフォーマンスを分析するためにPPROFツールを使用する方法について説明します。

この記事では、GOでユニットテストを書くことで、ベストプラクティス、モッキングテクニック、効率的なテスト管理のためのツールについて説明します。

Go Crawler Collyのキュースレッドの問題は、Go言語でColly Crawler Libraryを使用する問題を調査します。 �...

この記事では、go.modを介してGOモジュールの依存関係の管理、仕様、更新、競合解決をカバーすることについて説明します。セマンティックバージョンや定期的な更新などのベストプラクティスを強調しています。

バックエンド学習パス:フロントエンドからバックエンドへの探査の旅は、フロントエンド開発から変わるバックエンド初心者として、すでにNodeJSの基盤を持っています...

この記事では、GOでテーブル駆動型のテストを使用して説明します。これは、テストのテーブルを使用して複数の入力と結果を持つ関数をテストする方法です。読みやすさの向上、重複の減少、スケーラビリティ、一貫性、および
