首页 > 数据库 >mongodb switch case

mongodb switch case

时间:2023-03-16 16:45:42浏览次数:33  
标签:case 20 name mongodb age 30 switch

// 构造测试数据
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"
}
}
}
])

标签:case,20,name,mongodb,age,30,switch
From: https://www.cnblogs.com/wangdonghua/p/17223157.html

相关文章

  • MongoDB 分片集群-Sharded Cluster【转】
    1、分片概念分片(sharding)是一种跨多台机器分布数据的方法,MongoDB使用分片来支持具有非常大的数据集和高吞吐量操作的部署。换句话说:分片(sharding)是指将数据拆分,将其分......
  • 数据库同步,MongoDB、ES,寻求免费的可写入型的ODBC驱动
    大家好,我们开发的数据库同步软件DBSync,能同步多种数据库,支持增量同步、异构同步。但对于NoSQL的MongoDB,Elasticsearch,一直有个问题:官方的ODBC驱动只能读数据库,不能写数据......
  • ABP 结合 MongoDB 集成依赖注入
    1.我们再ABP项目添加一个.NETCore类库 类库名自定定义,我这里定义为 TexHong_EMWX.MongoDb添加NuGet包。ABPmongocsharpdriver  添加 AbpMongoDbConfigurati......
  • mongodb日常管理
     db.serverStatus()##查看系统状态db.currentOp()##查看正在运行的会话db.killOp()##获取到opid,杀掉会话db.getProfilingLevel()##获取日志级别 ......
  • Mongodb创建用户角色
    一、Mongodb数据库用户角色?MongoDB采用基于角色的访问控制(RBAC)来确定用户的访问。授予用户一个或多个角色,确定用户对MongoDB资源的访问权限和用户可以执行哪些操作。......
  • python读取mongodb并写入文件
     #!/usr/bin/envpython#coding=utf-8frompymongoimportMongoClientimporttimefromdatetimeimportdatetimedefchaxun_data():##client=MongoCl......
  • MongoDb集合改名
    publicbooleanmongoDbCollectionNameUpdate(StringoldName,StringnewName){/连接MongoDB数据库/MongoClientmongoClient=MongoClients.create(mongourl);MongoDa......
  • Ubuntu22.10 使用命令安装 MongoDB6.0 并配置
     安装mongodbapt-getinstallgnupgwget-qO-https://www.mongodb.org/static/pgp/server-6.0.asc|apt-keyadd-echo"deb[arch=amd64,arm64]https://repo......
  • MongoDB
    什么是MongoDBMongoDB是一个基于分布式文件存储的开源NoSQL数据库系统,由C++编写的。MongoDB提供了面向文档的存储方式,操作起来比较简单和容易,支持“无模式”的......
  • mongoDB的数据去重distinct(十三)
    要实现mysql中的sql语句,具体如下:selectmax(_id),deptfromtest1groupbydept;1.在mongodb中写入数据db.test1.insert({"dept":"A","item":{"sku":"111","color":......