数据库中有数据:


    "_id" : ObjectId("5c3c2ade8e40eb21b5ca69f4"), 
    "merid" : "201901091526", 
    "merorderno" : "1547447008", 
    "usersn" : NumberInt(42838), 
    "payments" : [
        {
            "body" : {
                "accessmode" : NumberInt(2), 
                "apkpackagename" : "cn.polaris.demo", 
                "apksign" : "cbaa3d4f", 
                "appid" : null, 
                "appname" : "sdk迁移王秀霞", 
                "bankcardarea" : NumberInt(14), 
                "bankcardhash" : "22109", 
                "bankcardmask" : "6789", 
                "bankid" : "01030000", 
                "bankname" : null, 
                "bindcardnum" : NumberInt(11), 
                "bindid" : NumberInt(1000382959), 
                "bosstype" : null, 
                "cardbankname" : null, 
                "cardphone" : NumberLong(15800006834), 
                "cardphonearea" : NumberInt(13), 
                "cardtype" : NumberInt(0), 
                "cardusername" : "7A98D832B7F95EA5E3EFB5E4210503E2", 
                "cardusernamehash" : "w", 
                "cityno" : null, 
                "correlationId" : "1390aaee-cecc-4a09-9bf7-ca3dd09027d7", 
                "createdatetime" : NumberLong(20151027102450), 
                "devserialnum" : "w", 
                "devtype" : "12", 
                "effectivedays" : NumberInt(7), 
                "failtype" : NumberInt(1), 
                "firstsuctime" : NumberLong(20190106142328), 
                "firsttrantime" : NumberLong(20150909164918), 
                "goodssn" : null, 
                "idno" : "67B09CB332F1A61342CC8A8C2FA189EA75F07C0725AE1583145E5CA3A162", 
                "idnohash" : "w", 
                "idnomask" : "3339", 
                "idtype" : NumberInt(1), 
                "imei" : "P0BLC3LCUWWW7G0J", 
                "imsi" : "D409A0A5545157A", 
                "lastaccessmode" : NumberInt(2), 
                "lastrspcode" : NumberInt(0), 
                "lastsuctime" : NumberLong(20151027105120), 
                "lasttrantime" : NumberLong(20151027105120), 
                "lastuserip" : "192.168.31.21", 
                "merchannelid" : "100011", 
                "merid" : "201901091526", 
                "merorderdate" : NumberInt(20151019), 
                "merorderno" : "1547447008", 
                "mersn" : NumberInt(1234), 
                "meruserid" : "w", 
                "orderno" : NumberLong(100000181493), 
                "ordertype" : NumberInt(1), 
                "payphone" : NumberLong(15700006935), 
                "paystyle" : NumberInt(2), 
                "paytype" : null, 
                "productsn" : NumberInt(38), 
                "producttype" : NumberInt(4), 
                "regdate" : NumberLong(20150909120624), 
                "riskcode" : "[999999]", 
                "risksn" : NumberLong(142326411621), 
                "rspcode" : NumberInt(140000013), 
                "rspdesc" : "实时风控触发拦截规则", 
                "tranamt" : NumberInt(500001), 
                "trannum" : NumberInt(80), 
                "transn" : NumberLong(100002393863), 
                "transucnum" : NumberInt(11), 
                "trantype" : NumberInt(1), 
                "udid" : "w", 
                "userip" : "99.217.95.139", 
                "userphone" : NumberInt(145), 
                "usersn" : NumberInt(42838), 
                "usertype" : NumberInt(1), 
                "verifycodeflag" : NumberInt(1), 
                "wifimac" : "c8:95:b4:c9:43:95"
            }, 
            "riskUseTime" : NumberLong(108), 
            "created" : ISODate("2019-01-14T06:23:26.402+0000"), 
            "ruleTriggeredList" : [
                {
                    "contextId" : null, 
                    "ruleDescription" : "场景:1天失败交易限次", 
                    "ruleName" : "contextRuleGroup_failedTransLimitGroup", 
                    "contextDesc" : null, 
                    "outterAction" : "ALLOW", 
                    "innerAction" : null
                }, 
                {
                    "contextId" : null, 
                    "ruleDescription" : "默认规则组:3分钟内银行卡连续金额递减失败交易数超过则触发", 
                    "ruleName" : "contextRuleGroup_continuousTransLimitGroup", 
                    "contextDesc" : null, 
                    "outterAction" : "ALLOW", 
                    "innerAction" : null
                }, 
                {
                    "contextId" : null, 
                    "ruleDescription" : "默认场景", 
                    "ruleName" : "contextRuleGroup_DefaultContext", 
                    "contextDesc" : null, 
                    "outterAction" : "ALLOW", 
                    "innerAction" : null
                }, 
                {
                    "contextId" : null, 
                    "ruleDescription" : "场景:1小时内在多个商户有交易请求", 
                    "ruleName" : "contextRuleGroup_CrossMerchantRulesGroup", 
                    "contextDesc" : null, 
                    "outterAction" : "ALLOW", 
                    "innerAction" : null
                }, 
                {
                    "contextId" : null, 
                    "ruleDescription" : "场景:近24小时内,同一手机号多银行交易", 
                    "ruleName" : "contextRuleGroup_OperatePhoneBindBankcardLimitGroup", 
                    "contextDesc" : null, 
                    "outterAction" : "ALLOW", 
                    "innerAction" : null
                }, 
                {
                    "contextId" : null, 
                    "ruleDescription" : "北京鑫惠文祥商贸有限公司", 
                    "ruleName" : "contextRuleGroup_beijingxinhuiwenxiangshangmaojiejikakuaijie", 
                    "contextDesc" : null, 
                    "outterAction" : "ALLOW", 
                    "innerAction" : null
                }, 
                {
                    "contextId" : "contextRuleGroup_DefaultContext", 
                    "ruleDescription" : "用户等级1", 
                    "ruleName" : "userLevelPrintRule", 
                    "contextDesc" : "默认场景", 
                    "outterAction" : "ALLOW", 
                    "innerAction" : null
                }, 
                {
                    "contextId" : "contextRuleGroup_beijingxinhuiwenxiangshangmaojiejikakuaijie", 
                    "ruleDescription" : "规则:触发单笔限额,当前交易金额为[5000.01]元,规则配置为[5000]元", 
                    "ruleName" : "SuccessAMTLimitSingle_BLOCK", 
                    "contextDesc" : "北京鑫惠文祥商贸有限公司", 
                    "outterAction" : "BLOCK", 
                    "innerAction" : {
                        "blackList" : null, 
                        "greyList" : null, 
                        "isWarning" : true
                    }
                }, 
                {
                    "contextId" : "contextRuleGroup_beijingxinhuiwenxiangshangmaojiejikakuaijie", 
                    "ruleDescription" : "规则:触发24小时银行卡维度的成功限额,已经成功交易为[45000.0]元+当前金额[5000.01]元>限额配置值[50000]元", 
                    "ruleName" : "SuccessAMTLimitLast24Hours_bankcardhash_BLOCK", 
                    "contextDesc" : "北京鑫惠文祥商贸有限公司", 
                    "outterAction" : "BLOCK", 
                    "innerAction" : {
                        "blackList" : null, 
                        "greyList" : null, 
                        "isWarning" : true
                    }
                }
            ], 
            "ruleStackList" : [
                {
                    "ruleStackName" : "failedTransLimitGroup", 
                    "includedRules" : [
                        {
                            "ruleName" : "FailedTransLimitLast24Hours_bankcardhash_BLOCK", 
                            "ruleParam" : {
                                "count" : NumberInt(20)
                            }, 
                            "innerAction" : null, 
                            "outterAction" : "ALLOW"
                        }
                    ], 
                    "contextId" : "contextRuleGroup_failedTransLimitGroup", 
                    "contextDesc" : "场景:1天失败交易限次"
                }, 
                {
                    "ruleStackName" : "continuousTransLimitGroup", 
                    "includedRules" : [
                        {
                            "ruleName" : "Continuous3FailedTransIn3MinutesWithAMTDegressive_bankcardhash_BLOCK", 
                            "ruleParam" : null, 
                            "innerAction" : null, 
                            "outterAction" : "BLOCK"
                        }
                    ], 
                    "contextId" : "contextRuleGroup_continuousTransLimitGroup", 
                    "contextDesc" : "默认规则组:3分钟内银行卡连续金额递减失败交易数超过则触发"
                }, 
                {
                    "ruleStackName" : "ruleGroup_default", 
                    "includedRules" : [
                        {
                            "ruleName" : "userLevelPrintRule", 
                            "ruleParam" : null, 
                            "innerAction" : null, 
                            "outterAction" : null
                        }
                    ], 
                    "contextId" : "contextRuleGroup_DefaultContext", 
                    "contextDesc" : "默认场景"
                }, 
                {
                    "ruleStackName" : "CrossMerchantRulesGroup", 
                    "includedRules" : [
                        {
                            "ruleName" : "CrossMerchant_TranReqMultiMersInAnHour_phone_BLOCK", 
                            "ruleParam" : {
                                "mersCount" : NumberInt(2)
                            }, 
                            "innerAction" : null, 
                            "outterAction" : "ALLOW"
                        }, 
                        {
                            "ruleName" : "CrossMerchant_TranReqMultiMersInAnHour_bankcardhash_BLOCK", 
                            "ruleParam" : {
                                "mersCount" : NumberInt(2)
                            }, 
                            "innerAction" : null, 
                            "outterAction" : "ALLOW"
                        }
                    ], 
                    "contextId" : "contextRuleGroup_CrossMerchantRulesGroup", 
                    "contextDesc" : "场景:1小时内在多个商户有交易请求"
                }, 
                {
                    "ruleStackName" : "OperatePhoneBindBankcardLimitGroup", 
                    "includedRules" : [
                        {
                            "ruleName" : "SuccessOperatePhoneBindBankcardLimitLast24Hours_BLOCK", 
                            "ruleParam" : {
                                "count" : NumberInt(2)
                            }, 
                            "innerAction" : {
                                "isWarning" : true
                            }, 
                            "outterAction" : "ALLOW"
                        }, 
                        {
                            "ruleName" : "AnyStatusOperatePhoneBindBankcardLimitLast24Hours_BLOCK", 
                            "ruleParam" : {
                                "count" : NumberInt(4)
                            }, 
                            "innerAction" : {
                                "isWarning" : true
                            }, 
                            "outterAction" : "ALLOW"
                        }
                    ], 
                    "contextId" : "contextRuleGroup_OperatePhoneBindBankcardLimitGroup", 
                    "contextDesc" : "场景:近24小时内,同一手机号多银行交易"
                }, 
                {
                    "ruleStackName" : "SuccessAMTLimitSingle", 
                    "includedRules" : [
                        {
                            "ruleName" : "SuccessAMTLimitSingle_BLOCK", 
                            "ruleParam" : {
                                "tranamt" : NumberInt(500000)
                            }, 
                            "innerAction" : null, 
                            "outterAction" : "BLOCK"
                        }
                    ], 
                    "contextId" : "contextRuleGroup_beijingxinhuiwenxiangshangmaojiejikakuaijie", 
                    "contextDesc" : "北京鑫惠文祥商贸有限公司"
                }, 
                {
                    "ruleStackName" : "SuccessLimitLast24Hours", 
                    "includedRules" : [
                        {
                            "ruleName" : "SuccessAMTLimitLast24Hours_bankcardhash_BLOCK", 
                            "ruleParam" : {
                                "tranamt" : NumberInt(5000000)
                            }, 
                            "innerAction" : null, 
                            "outterAction" : null
                        }
                    ], 
                    "contextId" : "contextRuleGroup_beijingxinhuiwenxiangshangmaojiejikakuaijie", 
                    "contextDesc" : "北京鑫惠文祥商贸有限公司"
                }
            ], 
            "head" : {
                "branchflow" : NumberInt(1), 
                "counttime" : NumberInt(32), 
                "endtime" : NumberLong(1445235023016), 
                "firstsrc" : NumberInt(1001005), 
                "flowid" : NumberInt(1307), 
                "from" : NumberInt(1300018), 
                "instanceid" : "152015101914102213070000", 
                "msgidstr" : "18761", 
                "reentrant" : null, 
                "regreentrant" : null, 
                "route" : [
                    [
                        NumberInt(1), 
                        NumberInt(1)
                    ], 
                    [
                        NumberInt(1), 
                        NumberInt(2)
                    ], 
                    [
                        NumberInt(1), 
                        NumberInt(3)
                    ]
                ], 
                "servicecode" : NumberInt(1400010), 
                "starttime" : NumberLong(1445235022984), 
                "step" : NumberInt(4), 
                "timeout" : null
            }
        }
    ]
}

查询其中的orderno值100000181493的对象

db.risk_collection.find({
    'payments.body.orderno': { 
        $eq: 100000181493
    }
})

等同于用聚合函数的结果

db.risk_collection.aggregate([{"$unwind":"$payments"},
{"$match":{"payments.body.orderno":"100000181493"}}])

查"outterAction"有"ALLOW"  (都说$elemMatch只返回一条数据,不知道为啥全返回,)

db.risk_collection.find({'payments':{'$elemMatch':{"ruleTriggeredList":{'$elemMatch':{"outterAction":"BLOCK"}}}}});

查"outterAction"有"ALLOW"的数量
db.risk_collection.count({'payments':{'$elemMatch':{"ruleTriggeredList":{'$elemMatch':{"outterAction":"ALLOW"}}}}});

https://blog.csdn.net/shiyaru1314/article/details/68496642

https://blog.csdn.net/xiaoliuliu2050/article/details/79881171

https://www.jianshu.com/p/ac71032a8cdd

下面可以很好的说明$elemMatch (MongoDB 权威指南 第2版)

MongoDB多层嵌套查询相关推荐

  1. MSSQL的多层嵌套查询

    今天在聊天系统中需要系统执行一个多层嵌套查询. 一开始语句如下总出现错误:原来是在]='123') 后我多加了一个 as tb1 改为如下后,正确运行. select * from ( select ...

  2. mongodb java 嵌套查询_MongoDB java 查询嵌套JSON数据?

    如何在java中查询存在MongoDB里的嵌套json格式的数据? 这是我的json数据: { "_id" : ObjectId("59eac603b2921c583a1 ...

  3. Mybatis 多层嵌套查询(高级结果映射)

    转::https://blog.csdn.net/LYH_KING/article/details/50833513 个人分享: . 2.查询语句 3.查询结果

  4. SQL数据查询之——嵌套查询

    一.概念描述 在SQL语言中,一个 SELECT-FROM-WHERE 语句称为一个查询块.将一个查询块嵌套在另一个查询块的 WHERE 子句或 HAVING 短语的条件中的查询称为 嵌套查询.例如: ...

  5. all any 或 此运算符后面必须跟_嵌套查询 带有in谓词,比较运算符,any或all谓词的子查询...

    前言 1.      将一个查询块嵌套在另一个查询块的where子句或having短语的条件中的查询称为嵌套查询 2.      上层的查询块叫外层查询或父查询或主查询,下层查询块又称为内层查询或子查 ...

  6. 连接查询--嵌套查询

    连接查询–嵌套查询 一.单层嵌套查询 嵌套查询分为相关嵌套查询.不相关嵌套查询.区分条件是分离之后是否可以单独查询. 不相关嵌套查询:由里向外查询,先执行子查询,得到的结果用来构造外部查询的条件.子查 ...

  7. Oracle数据库的嵌套查询

    备注:此博客为转载,方便自己学习 Oracle的嵌套查询,原作者地址请点击此处 在前面2个章节,我们比较详细的介绍了一些SQL语句的基本用法,但是在我们实际的项目开发中,其实很多时候这些基本的用法远远 ...

  8. SQL语言的数据查询之嵌套查询

    3. 嵌套查询 在SQL语言中,一个SELECT-FROM-WHERE语句被称为一个查询块.将一个查询块嵌套在另外一个查询块的WHERE子句或者HAVING短语的条件中的查询被称为嵌套查询.上层的查询 ...

  9. sql镶嵌查询_SQL数据查询之——嵌套查询

    一.概念描述 在SQL语言中,一个 SELECT-FROM-WHERE 语句称为一个查询块.将一个查询块嵌套在另一个查询块的 WHERE 子句或 HAVING 短语的条件中的查询称为 嵌套查询.例如: ...

最新文章

  1. 折半查找函数(from 《The C Programming Language》)
  2. jQuery样式操作
  3. 集群中几种session同步解决方案的比较[转]
  4. 索引的优点,索引优化原则
  5. 有趣的MS Live Labs
  6. go hello world第一个程序
  7. 金山云服务器内网带宽,金山云-文档中心-配置弹性网卡
  8. android url格式化,Android利用SpannableString实现格式化微博内容
  9. 程序员放弃阿里60w年薪,选到手5k的公务员,坚信公务员后期完胜程序员
  10. zabbix监控iptables防火墙状态之是否有丢弃的包(攻-击)
  11. UITextfield键盘相关设置
  12. 了解Binder机制原理和底层实现
  13. 保险行业持续扩展,巨杉数据库再次中标人保财险
  14. SHELL基础命令大全
  15. QTreeWidget支持双击编辑Item节点的内容
  16. 抖音互关源码 E4A源码含数据库后台程序搭建可用
  17. jetson nano 电源_Jetson Nano必读-第二站:电源
  18. 计算机禁用网络后怎么打开,无线网关,教您笔记本无线网络禁用后怎么开启
  19. 双硬盘笔记本电脑安装WIN10和Ubuntu双系统(二)
  20. keep-alive包裹的el-tabs中有两个页面使用echart渲染空白问题

热门文章

  1. docker 安装mysql、canal、redis实现redis和mysql缓存一致性
  2. 储存过程的优点?缺点?
  3. Python之路点燃编程圈:源于不爽C语言,单枪匹马搞副业,如今吞噬世界(附链接)...
  4. 大学生创新创业大赛应该如何入手?互联网+ 三创赛 挑战杯 有现成模板
  5. 【Convex Optimization (by Boyd) 学习笔记】Chapter 2 - Convex sets(1) 仿射集凸集
  6. EventBus、Rxjava、RxBus的定义、作用、使用方式及区别
  7. 知学云Classcool 教育产品分析报告
  8. 基于谷歌GKE使用Kubernetes
  9. 大数据必学Java基础(一百一十四):Requet域监听器
  10. 数据库常用的命令讲解