如何在MongoDB中创建嵌套索引?

时间:2012-03-16 00:21:31

标签: mongodb indexing

一个。如何索引“嵌套”及其所有值?

B中。我如何为valuetwo编制索引?

{
    id: 00000,
    attrs: {
        nested:{
            value: value1,
            valuetwo: value2,
        }
    }
}

我看过这里:http://www.mongodb.org/display/DOCS/Indexes以及据我所知的文档,并不清楚索引未嵌套的内容。

2 个答案:

答案 0 :(得分:53)

您创建它们就像在顶级字段上创建索引一样:

db.collection.ensureIndex({"attrs.nested.value": 1})

您需要在每个字段上显式创建索引。

答案 1 :(得分:7)

A。索引"嵌套"中的所有属性你必须单独索引它们:

db.collection.createIndex({"attrs.nested.value": 1});
db.collection.createIndex({"attrs.nested.valuetwo": 1});

这可以在一个命令中完成:

db.collection.createIndex({"attrs.nested.value": 1, "attrs.nested.valuetwo": 1});

B。只需索引" valuetwo":

db.collection.createIndex({"attrs.nested.valuetwo": 1})

使用createIndex覆盖ensureIndex,因为ensureIndex为Deprecated since version 3.0.0