$ elemMatch不适用于2.6.1版

时间:2014-09-15 14:05:19

标签: mongodb version

我创建了一个具有以下结构的数据库

{
"_id" : ObjectId("54167c9a4420660b672d2a3f"),
"a" : "1111",
"pc" : [
    [
        "bb",
        "aa",
        {
            "c" : "cc",
            "d" : "dd"
        },
        {
            "c" : "aaa",
            "d" : "ddd"
        },

    ],
    [
        "cc",
        "dd",
        {
            "a" : "cc",
            "b" : "dd"
        },
        {
            "a" : "aaa",
            "b" : "ddd"
        },
                    }
     ]
  ]
}

我在mongodb版本2.4.6中使用了以下查询,它给出了正确的输出

db.cg.find({'pc':{'$elemMatch':{'$all':['aa','bb']}}})

但我在mongodb版本2.6.1中使用的查询相同,它既没有抛出任何错误也没有给出任何结果

1 个答案:

答案 0 :(得分:0)

我认为这是$elemMatch的错误或缺失功能。我同意您的查询应返回该文档,并在MongoDB 2.4.10(找到),最新的稳定版2.6.4(未找到)和最新的不稳定版2.7.6(未找到)中重现您的结果。我认为$elemMatch尚未完全实现匹配的非对象类型(在本例中是一个数组)。你可以在核心服务器项目中file a ticket请问这个问题中的信息,然后在这里发布一个链接吗?