MongoDB 的使用總結(jié) 使用多分支判斷 switch...case...then

mongodb 使用多分支判斷 switch...case...then

mongodb switch多分支判斷的結(jié)構(gòu)如下

{
    "$switch": {
        "branches": [
            {
                "case": {
                    "<判斷條件>"
                },
                "then": ""
            },
            {
                "case": {
                    "<判斷條件>"
                },
                "then": ""
            },
            
        ],
        "default": "默認(rèn)值"
    }
}

mongodb switch多分支判斷示例

// 構(gòu)造測試數(shù)據(jù)
db.col00.insertMany([
    {"name": "doc01", "age": 10},
    {"name": "doc02", "age": 11},
    {"name": "doc03", "age": 12},
    {"name": "doc03", "age": 20},
    {"name": "doc04", "age": 21},
    {"name": "doc05", "age": 22},
    {"name": "doc07", "age": 30},
    {"name": "doc08", "age": 31},
    {"name": "doc09", "age": 32}
]);

// 使用場景:針對測試數(shù)據(jù),要實現(xiàn)對年齡(age)按區(qū)間進行分組聚合  
// 注意點:$$ROOT表示文檔自身
db.col00.aggregate([
    {
        "$project": {
            "self": "$$ROOT",
            "ageKey": {
                "$switch": {
                    "branches": [
                        {
                            "case": {
                                "$lt": ["$age", 20]
                            },
                            "then": "0-20歲"
                        },
                        {
                            "case": {
                                "$and": [{
                                    "$gte": ["$age", 20]
                                }, {
                                    "$lt": ["$age", 30]
                                }]
                            },
                            "then": "20-30歲"
                        }
                    ],
                    "default": "30歲以上"
                }
            }
        }
    },
    {
        "$group": {
            "_id": "$ageKey",
            "count": {
                "$sum": 1
            },
            "docs": {
                "$push": "$self"
            }
        }
    }
])

mongodb switch多分支判斷示例執(zhí)行結(jié)果


示例執(zhí)行結(jié)果
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容