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

フィールドに基づいて重複するドキュメントを削除する

    これは、集約フレームワークを使用して、クライアント側の処理なしで実際に実行できることです。

    MongoDB 3.4

    db.collection.aggregate(
        [ 
            { "$sort": { "_id": 1 } }, 
            { "$group": { 
                "_id": "$asin", 
                "doc": { "$first": "$$ROOT" } 
            }}, 
            { "$replaceRoot": { "newRoot": "$doc" } },
            { "$out": "collection" }
        ]
    
    )
    

    MongoDBバージョン<=3.2:

    db.collection.aggregate(
        [ 
            { "$sort": { "_id": 1 } }, 
            { "$group": { 
                "_id": "$asin", 
                "doc": { "$first": "$$ROOT" } 
            }}, 
            { "$project": { 
                "asin": "$doc.asin", 
                "url": "$doc.url", 
                "image": "$doc.image", 
                "salesRank": "$doc.salesRank", 
                "title": "$doc.salesRank", 
                "brand": "$doc.brand", 
                "favourite": "$doc.favourite", 
                "createdAt": "$doc.createdAt", 
                "updatedAt": "$doc.updatedAt" 
            }},
            { "$out": "collection" }
        ]
    )
    


    1. mongoのコマンドライン認証が失敗する

    2. Mongoクエリの質問$gt、$ lt

    3. キー値を共有するMongoDBで2つのドキュメントを検索する

    4. 暗号化を使用してMongoDBデータを保護する方法