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

同じフィールドのmongoドキュメントを見つける方法

    AggregationFramework を使用して重複を見つけることができます および $group

    設定例:

    // Batch insert some test data
    db.mycollection.insert([
        {a:1, b:2, c:3},
        {a:1, b:2, c:4},
        {a:0, b:2, c:3},
        {a:3, b:2, c:4}
    ])
    

    集計クエリ:

    db.mycollection.aggregate(
        { $group: { 
            // Group by fields to match on (a,b)
            _id: { a: "$a", b: "$b" },
    
            // Count number of matching docs for the group
            count: { $sum:  1 },
    
            // Save the _id for matching docs
            docs: { $push: "$_id" }
        }},
    
        // Limit results to duplicates (more than 1 match) 
        { $match: {
            count: { $gt : 1 }
        }}
    )
    

    出力例:

    {
        "result" : [
            {
                "_id" : {
                    "a" : 1,
                    "b" : 2
                },
                "count" : 2,
                "docs" : [
                    ObjectId("5162b2e7d650a687b2154232"),
                    ObjectId("5162b2e7d650a687b2154233")
                ]
            }
        ],
        "ok" : 1
    }
    



    1. Node.js Mongooseを使用してドキュメントを削除するにはどうすればよいですか?

    2. マングースプロパティ'x'はタイプ'Document'に存在しません

    3. REDISのクラスター有効オプションでYCSBロードを開始するには

    4. MongoEngine-別のユーザーがこのデータベースに対してすでに認証されています。最初にログアウトする必要があります