使用mongoid查看MongoDB中的现有索引

时间:2012-08-30 09:15:40

标签: mongoid indexing

我想看看MongoDB使用的现有索引。

我可以做相同的事吗?
$ mongod
> use my_db
> db.system.indexes.find()

使用Mongoid?

$ rails console
> ?

使用MongoHQ可以很方便地使用我的heroku应用程序。谢谢!

2 个答案:

答案 0 :(得分:22)

您可以通过collection获取Mongoid模型的基础索引。

> YourModel.collection.indexes

这可以达到轻便摩托车司机(在Mongoid 3中)。见http://mongoid.org/en/moped/docs/driver.html

答案 1 :(得分:0)

要使用史蒂夫的答案,我将其添加到模块中以执行“常见的事情”:

module CommonModelMethods
  extend ActiveSupport::Concern
  class_methods do
    def show_indexes
      self.collection.indexes.to_a.collect{|i| i[:key]}
    end
  end
end

然后可以将该模块包含在您的班级中(在开发过程中有用):

class WaterSupply
  include Mongoid::Document
  include CommonModelMethods
  ...
end

这会在控制台中导致以下结果:

2.4.5 :031 > WaterSupply.show_indexes
 => [{"_id"=>1}, {"location"=>"2dsphere"}, {"address"=>1}, {"organization_id"=>1, "address"=>1}]