使用Mongoid 2.4获取/显示集合的索引

时间:2013-12-06 06:53:26

标签: mongodb mongoid

mongo控制台中,我可以执行db.collection.getIndexes()来查看为特定集合定义的所有索引。

上述查询的mongoid等价物是什么?

采用this参考

我试过了:

CollectionName.collection.getIndexes()

但它没有这样的方法。您似乎可以在mongoid 3.0中执行上述查询,但不能在mongoid 2.4中执行。

2 个答案:

答案 0 :(得分:2)

如果CollectionName是您的模型,那么CollectionName.collection将是Moped::Collection。要从Moped::Collection获取集合的索引,请使用indexes方法:

indexes = CollectionName.collection.indexes

然后您可以使用each来查看索引:

CollectionName.collection.indexes.each do |index|
  # index['key'] has the keys as a Hash
  # index['unique'] will be true for a unique index
  # ...
end

Mongoid APIMoped API可能值得一看。


如果你在Mongoid2的土地上,那么我认为你必须使用标准的低级MongoDB接口而不是Moped。在这种情况下,CollectionName.collection.driver将是Mongo::Collection,索引方法将是:

在您的情况下,您需要查看CollectionName.collection.driver.index_information哈希。

答案 1 :(得分:1)

最后遇到了获取索引的命令:

CollectionName.collection.index_information

但我想知道,为什么文档中的任何地方都没有提到上述命令?