Mongodb查询以匹配由数字标识的子文档中的值

时间:2019-04-01 10:34:03

标签: mongodb mongodb-query

我有一个包含这样的元素的集合


    ..
     "rMResults" : {
            "4" : {
                "decimal" : 19079,
                "formatted" : "190.79"
            },
            "5" : {
                "decimal" : 200000,
                "formatted" : "2000.00"
            },
            "6" : {
                "decimal" : 9467,
                "formatted" : "94.67"
            },
            "7" : {
                "decimal" : 32360,
                "formatted" : "323.60"
            }
        },
    ..

我想查询所有匹配“十进制”的文档

我尝试这样的查询


    db.getCollection('events').find({  "rMResults": {
        $elemMatch: {
            7: {
                $elemMatch: {
                    decimal: 32360
                }
            }
        }
    } })

但是没有退回任何文件,有人可以帮我吗?

1 个答案:

答案 0 :(得分:2)

您正在尝试获取其在数组上起作用的对象上的elementMatch。看一下 elementMatch 以一种简单的方式来匹配和投影所选字段,就像这样,

db.getCollection('ACL').find({  "rMResults.7.decimal": 32360}, {"rMResults.7.decimal": true})