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

Mongoは、2つ以上のフィールドのエントリの重複を検索します

    次の集約パイプライン操作を実行することで、重複を簡単に識別できます。

    db.collection.aggregate([
        { 
            "$group": { 
                "_id": { "foreing": "$foreing", "value": "$value" }, 
                "uniqueIds": { "$addToSet": "$_id" },
                "count": { "$sum": 1 } 
            }
        }, 
        { "$match": { "count": { "$gt": 1 } } }
    ])
    

    $group 最初のステップの演算子は、foreignによってドキュメントをグループ化するために使用されます およびvalue キー値を入力してから、_idの配列を作成します uniqueIdsとしてグループ化された各ドキュメントの値 $addToSetを使用するフィールド オペレーター。これにより、グループごとに一意の式の値の配列が得られます。 $sumを使用して、パイプラインの後半の段階で使用するグループ化されたドキュメントの総数を取得します オペレーター。

    パイプラインの第2段階では、 $matchを使用します カウントが1のすべてのドキュメントを除外する演算子。除外されたドキュメントは一意のインデックスキーを表します。

    残りのドキュメントは、ペアforeingのキー値が重複しているコレクション内のドキュメントになります &value



    1. BasicDBObjectから値を抽出するMongoDB(Java)

    2. 最もよく知られているNoSQLシステム間の主な違い/機能

    3. Node.jsからRedisを使用する方法

    4. MongoDB $ toObjectId