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

MongoDBの別のフィールドにグループ化されたドキュメント全体で、フィールド内の文字列のインスタンス数をカウントしますか?

    以下のクエリを試すことができます:

    db.collection.aggregate([
        /** Group all docs based on flightNum & status & count no.of occurances */
        {
            $group: {
                _id: {
                    flightNum: "$flightNum",
                    status: "$status"
                },
                count: {
                    $sum: 1
                }
            }
        },
        /** Group on flightNum & push an objects with key as status & value as count */
        {
            $group: {
                _id: "$_id.flightNum",
                status: {
                    $push: {
                        k: "$_id.status",
                        v: "$count"
                    }
                }
            }
        },
        /** Recreate status field as an object of key:value pairs from an array of objects */
        {
            $addFields: {
                status: {
                    $arrayToObject: "$status"
                }
            }
        },
        /** add flightNum inside status object */
        {
            $addFields: {
                "status.flightNum": "$_id"
            }
        },
        /** Replace status field as new root for each doc in coll */
        {
            $replaceRoot: {
                newRoot: "$status"
            }
        }
    ])
    

    テスト: MongoDB-Playground




    1. スプリングブートでJWT認証と一緒にoAuth2を実装するにはどうすればよいですか?

    2. MongoDB C#ドライバー:挿入時にプロパティを無視する

    3. MongoDB $ stdDevSamp

    4. MongoDB式で$existsを使用する