2012-11-20 38 views
0

我們在Heroku上使用MongoHQ插件,並使用Mongoid 3.0適配器。插件計劃帶有一個大小限制,當數據庫限制已達到時(除非配置爲安全模式 - 在這種情況下它會拋出異常),Mongo將默默無聞地寫入數據。如何判斷Heroku上的MongoID數據庫大小?

我想從應用程序內查詢我們有多接近,如果我們已經達到極限,發送警報。我怎麼能運行像db.stats()命令,但使用Mongoid?

回答

1

我發現如何在Mongoid 3.x中使用Moped作爲驅動程序,而不是10gen的Ruby驅動程序。

這是筆者對摩托本人的回答,他回答了有關此事的github issue

Mongoid.default_session.command(collstats: 'collection_name') 

這將返回相同的結果db.stats()從蒙戈控制檯。作爲額外的好處,如果集合被封頂,那麼在返回值中將會有一個標誌表明這一點。

+0

'Mongoid.default_session'現在已被棄用,但上面的命令仍然有效:只需使用'Mongoid.default_client.command(collstats:'collection_name')' – Alessandro

0

您可以在您的對象(例如文檔)上調用「.db」方法,並對其執行.stats。

例如:

MyBlog.db.stats 

對於要Mongoid 3.0.0,Mongoid.master.stats也應該工作之前verisons。

+1

按對象表示一個具有'include Mongoid :: Document'的類?我的一個Mongoid類被稱爲「Metric」。使用你的建議,我嘗試了'Metric.db.stats',並且我得到了'未定義的方法'db'用於Metric:Class'。我也嘗試過一個實例 - 同樣的問題。與嘗試'Mongoid.default_session'一樣。看起來沒有'db'方法。我使用的是Mongoid 3.0.10。 –

相關問題