如何索引MongoDB或Mongoid中的哈希字段?

时间:2012-03-04 05:50:43

标签: ruby-on-rails mongodb mongoid

我有以下mongo文档:

{
  _id: 'someid',
  name: 'John Doe',
  address: {
    city: 'Osaka',
    country: 'Japan'
  }
}

如何按城市和国家/地区编制索引?

1 个答案:

答案 0 :(得分:4)

来自MongoDB documentation

  

对嵌入字段进行索引

     

您可以在子文档中嵌入的字段上创建索引,就像索引文档中的顶级字段一样。 [...]相反,嵌入字段上的索引允许您使用“点符号”来内省子文档。

     

[...]

db.people.ensureIndex( { "address.zipcode": 1 } )

Mongoid使用相同的Dot Notation

  

您也可以在嵌入的文档字段中定义索引。

class Person
  include Mongoid::Document
  embeds_many :addresses
  index "addresses.street"
end

所以你想要这样的东西:

class C
  include Mongoid::Document
  index 'address.city'
  index 'address.country'
  #...
end