sql >> データベース >  >> NoSQL >> MongoDB

oplog.rsのtsフィールドのインデックスは更新されません

    ご存知のとおり、セカンダリインデックスは、local.oplog.rsなどのシステムコレクションではサポートされていません。 および*.system.profile 。 MongoDB 2.4以前では、インデックスは作成されたように見えますが、実際には更新されていません。新しいバージョンのMongoDB(2.6以降)は、追加のインデックスを作成しようとするなど、サポートされていない変更でシステムコレクションを直接更新しようとすると、エラーを返します。

    oplog.rs コレクションは、複製のみを目的としているため、間違いなく「特別」です。レプリケーションの内部は、これに基づいてoplogの予想される操作についていくつかの仮定を行います。たとえば、レプリケーションではoplogエントリを挿入するだけで済みます。自分で作成できる上限付きのコレクションとは異なり、oplogエントリは決してありません。 更新されました。

    アプリケーションは、oplogに挿入された新しいエントリを追跡する必要がある場合、または$naturalを使用して検索を行う必要がある場合、調整可能なカーソルでoplogを読み取ることが期待されます。 注文します。

    調整可能なカーソルのチュートリアルでは、使用法についてさらに詳しく説明しますが、注意すべきいくつかの特定のポイントは次のとおりです。

    • テールカーソルはインデックスを使用せず、自然な順序でドキュメントを返します。
    • 調整可能なカーソルはインデックスを使用しないため、クエリの初期スキャンにはコストがかかる場合があります。ただし、最初にカーソルを使い果たした後、新しく追加されたドキュメントのその後の取得は安価です


    1. Docker-compose-127.0.0.1ではなく0.0.0.0でRedis

    2. Aggregator+Redisを使用したデッドロック

    3. 自分のAmazonAWSアカウントのMongoDB-as-a-Service

    4. mongoDB / mongoose:nullでない場合は一意