2012-11-20 2 views
0

우리는 Mongoid 3.0 어댑터를 사용하여 Heroku에 MongoHQ 애드온을 사용하고 있습니다. addon 계획에는 크기 제한이 있습니다. DB 제한에 도달하면 Mongo는 자동으로 쓰기를 실패합니다 (안전 모드 용으로 구성되지 않은 경우 - 예외가 발생 함).Heroku에서 MongoID로 DB 크기를 알려주는 방법은 무엇입니까?

Google에서 앱이 얼마나 가까이 있는지 쿼리하고 제한에 도달 한 경우 알림을 보내려고합니다. db.stats() 명령을 실행하지만 몽고이드를 사용하려면 어떻게해야합니까?

답변

1

나는 10gen의 Ruby 드라이버가 아닌 Moped를 드라이버로 사용하는 Mongoid 3.x에서이 작업을 수행하는 방법을 알아 냈습니다.

Moped 본인은이 문제에 관해 제기 한 github issue에 답변했습니다.

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

이것은 Mongo 콘솔에서 db.stats()과 같은 결과를 반환합니다. 추가 보너스로 콜렉션에 제한이 있으면 반환 값에 해당 플래그가 있음을 나타냅니다.

+0

'Mongoid.default_session'는 이제 더 이상 사용되지 않지만 위의 명령은 여전히 ​​유효합니다 :'Mongoid.default_client.command (collstats : 'collection_name')' – Alessandro

0

개체 (예 : 문서)에서 ".db"메서드를 호출하고 .stats를 호출 할 수 있습니다. 예를 들어

: 3.0.0, Mongoid.master.stats도 작동합니다 Mongoid하기 전에 verisons를 들어

MyBlog.db.stats 

.

+1

개체 란'Mongoid :: Document'가 포함 된 클래스를 의미합니까? 내 몽고 이드 클래스 중 하나는 '메트릭'이라고합니다. 귀하의 제안을 사용하여'Metric.db.stats'을 시도했으며'Metric : Class'에'undefined method 'db'를 얻었습니다. 나는 또한 인스턴스 - 같은 문제를 시도했다. 'Mongoid.default_session'과 동일합니다. 'db' 메소드가없는 것 같습니다. Mongoid 3.0.10을 사용하고 있습니다. –

관련 문제