mongodb switch case
// 构造测试数据
db.hello100.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}
]);
// 使用场景:针对测试数据,要实现对年龄(age)按区间进行分组聚合
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"
}
}
}
])
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术