首页 文章

MongoDB $ elemMatch问题

提问于
浏览
0

我是MongoDB的新手,我觉得我误解了$ elemMatch的工作原理 . 我正在运行以下两个查询,我希望返回相同的结果集 . 第一个返回我期望的,所有具有stats.o元素等于1的文档 . 第二个查询不返回任何文档 . 有谁知道为什么我会得到第一个查询的结果,但不是第二个?数据库在运行MongoDB 2.2的MongoLab上运行 .

{
    "stats.o":1
}


{
    "stats": {
        "$elemMatch": {
            "o": 1
        }
    }
}

1 回答

  • 0

    您可能会看到$ elemMatch的效果仅适用于嵌入式文档数组,而不适用于简单的嵌入式文档 .

    有一个请求扩展$ elemMatch的功能跟踪https://jira.mongodb.org/browse/SERVER-6050

    所以如果你的文件是:

    { stat : { o : 1 } }

    你不能使用$ elemMatch(但你真的不需要) .

    但如果是的话

    { stat : [ { o : 1 } ] }

    那么你可以并且实际上可能需要使用$ elemMatch来获得正确的结果(在你有许多数组元素和必须“一起”匹配的多个标准的情况下 .

相关问题