2012-03-04 47 views

回答

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 
+0

但是地址不嵌入文档。这是一个简单的散列字段。 – 2012-03-04 06:17:47

+0

@CoffeeBite:你试过了吗?我设置符合您的样本数据的快速采集,对'address.city'做了'ensureIndex',然后'db.x.find({ 'address.city': 'C'})。说明()'指示''BtreeCursor address.city_1“'用于查询并且表示索引正在被使用。 – 2012-03-04 06:31:39