2013-02-28 49 views
1

的内部列表假设以下数据结构在MongoDB中:的MongoDB - 索引对象

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

怎么可能一个索引使用ensureIndex()ratings内部结构的钥匙?我想创建一个索引,将文档_id与评分对象中的任何和所有键(在本例中为“771206753”)关联起来。

ratings键入索引就足够了吗?那也不会记录收视率对象的价值部分吗?我应该如何移动我的模式,如果查找是由那个特定的键?

回答

2

你不能索引动态键和索引ratings会将整个对象索引为一个blob,所以你也不想这样做。

它可以更好地工作,以您的架构返工:

{ 
    "_id" : "Bob Blocker", 
    "ratings" : [ 
     {id: "771206753", value: 1} 
    ], 
    "prevalence" : 1 
} 

,然后指数'ratings.id'