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

MongoDBは、各配列要素のドキュメントをカウントします

    $unwind を実行できます 配列を使用して要素ごとに1つのドキュメントを取得し、$groupを実行します 要素を数えるには:

    db.collection.aggregate([
        {
            $unwind: "$elements"
        },
        {
            $group: {
                _id: "$elements",
                count: { $sum: 1 }
            }
        }
    ])
    

    編集: $replaceRoot> および $ arrayToObject IDをキーとして返し、値としてカウントするには:

    db.collection.aggregate([
        {
            $unwind: "$elements"
        },
        {
            $group: {
                _id: "$elements",
                count: { $sum: 1 }
            }
        },
        {
            $group: {
                _id: null,
                counts: { $push: { k: "$_id", v: "$count" } }
            }
        },
        {
            $replaceRoot: {
                newRoot: { $arrayToObject: "$counts" }
            }
        }
    ])
    

    Mongo Playground




    1. MongoDBの既存のインデックスを削除せずに変更できますか?

    2. 非同期nodejsのクエリと処理結果

    3. マングースモデルupdate()とsave()

    4. MongoDBを使用した単体テスト