MongoDB嵌入式文档索引结构

时间:2019-02-26 12:51:16

标签: mongodb indexing mongodb-query

有关于嵌入 document

的索引的问题

例如,我有一个索引

db.mycoll.ensureIndex({ "embedded": 1 })

和类似文件

{
    "_id" : ObjectId("5c75284a5e4c7756e0efb97b"),
    "embedded" : {
        "4" : NumberInt("4"),
        "key1" : NumberInt("1"),
        "key2" : NumberInt("2"),
        "key3" : {
            "key4" : NumberInt("3")
        }
    }
}

我知道,如果我使用字段匹配db.mycoll.find({ "embedded.key1": NumberInt("1")})运行查询,则不会使用我的索引(说明中的collscan)。仅当我在嵌入式文档上运行完全匹配时才会使用

db.mycoll.find({
    "embedded": {
        "4": NumberInt("4"),
        "key1": NumberInt("1"),
        "key2": NumberInt("2"),
        "key3": {
            "key4": NumberInt("3")
        }
    }
})

另一个例子: 我可以打电话

db.mycoll.find().sort({"embedded": 1})

它使用索引(由于解释

那么它如何运作? MongoDB索引使用B树数据结构,但是在嵌入文档的情况下如何使用它呢?

0 个答案:

没有答案