在mongo查询中的文档中的键顺序,重要还是没有?

时间:2014-12-11 16:46:44

标签: mongodb mongodb-query

我想基于作为文档的值找到mongo文档。具体来说,我想找到'fb_creative_id'等于{'ios': 'bob', 'android': 'ann'}的文档。看来,根据下面的控制台输出,键/值的顺序很重要。这是对的吗?

> db.coll.findOne({'fb_creative_id': {'android': 'ann', 'ios': 'bob'}})
null
> db.coll.findOne({'fb_creative_id': {'ios': 'bob', 'android': 'ann'}})
{
    "_id" : ObjectId("5489c7885464bbcc5b6468c3"),
    "fb_creative_id" : {
        "ios" : "bob",
        "android" : "ann"
    }
}

1 个答案:

答案 0 :(得分:2)

如果你要查询的是子文档,那么字段顺序就像documentation

中提到的那样重要
  

当字段包含嵌入文档时,查询可以指定嵌入文档的完全匹配,也可以使用dot notation指定嵌入文档中各个字段的匹配。

您需要使用此处的dot notation

db.coll.findOne(
    {
        'fb_creative_id.ios': 'bob', 
        'fb_creative_id.android': 'ann'
    }
)