MongoDB - 索引内部对象列表

时间:2013-02-28 15:59:29

标签: mongodb indexing

在MongoDB中假设以下数据结构:

{
    "_id" : "Bob Blocker",
    "ratings" : {
        "771206753" : 1
    },
    "prevalence" : 1
}

如何使用ratings索引ensureIndex()内部结构的键?我想建立一个索引,将文档_id与评级对象中的任何和所有键(在本例中为“771206753”)相关联。

ratings键入索引是否足够?那还不记录评级对象的价值部分吗?如果特定键需要查找,我应该移动我的模式吗?

1 个答案:

答案 0 :(得分:2)

您无法索引动态密钥,索引ratings会将整个对象编入为blob,因此您也不希望这样做。

将模式重新编写为:

可能会更好
{
    "_id" : "Bob Blocker",
    "ratings" : [
        {id: "771206753", value: 1}
    ],
    "prevalence" : 1
}

然后索引'ratings.id'