mongoDB中的Object对象字段的索引

时间:2016-04-12 12:15:21

标签: mongodb indexing mongodb-query

假设我有以下架构

//LevelColor

{
   "Colors" : [
        {
            "Color" : "Red", "Code" : "#FF0000"
        },
        {
            "Color" : "Black", "Code" : "#000000"
        },
        {
            "Color" : "White", "Code" : "#FFFFFF"
        }
   ]
}

我有索引

{"Colors.Color" : 1}

但是出于某些特定原因,我只需要查询第一个元素,比如

{"Colors.0.Color" : "Red"}

在上面的查询索引中没有被使用但是对于下面的查询它正在被利用

{"Colors.Color" : "Red"}

但我需要查询第一个元素,在第一个元素上查询的任何替代方法,或者我可以优化索引以在同一个查询中使用。

1 个答案:

答案 0 :(得分:0)

要使用索引支持第一个元素查询,您必须通过在以下位置创建索引,仅在Colors的第一个元素上创建索引:

{"Colors.0.Color" : 1}