我们在 Heroku 上使用MongoHQ插件和Mongoid 3.0适配器。插件计划带有大小限制,当达到 DB 限制时,Mongo 将默默地失败写入(除非配置为安全模式——在这种情况下它会抛出异常)。
我正在尝试从应用程序中查询我们离我们有多近,并在我们达到限制时发送警报。我怎样才能运行类似db.stats()
命令但使用 Mongoid 的东西?
我们在 Heroku 上使用MongoHQ插件和Mongoid 3.0适配器。插件计划带有大小限制,当达到 DB 限制时,Mongo 将默默地失败写入(除非配置为安全模式——在这种情况下它会抛出异常)。
我正在尝试从应用程序中查询我们离我们有多近,并在我们达到限制时发送警报。我怎样才能运行类似db.stats()
命令但使用 Mongoid 的东西?
我在 Mongoid 3.x 中找到了如何做到这一点,它使用 Moped 作为驱动程序,而不是 10gen 的 Ruby 驱动程序。
是 Moped 的作者本人回答了关于此事提出的github 问题。
Mongoid.default_session.command(collstats: 'collection_name')
db.stats()
这将返回与Mongo 控制台相同的结果。作为额外的奖励,如果集合有上限,则返回值中会有一个标志表明这一点。
您可以在您的对象(例如文档)上调用“.db”方法,然后对其执行 .stats。
例如:
MyBlog.db.stats
对于 Mongoid 3.0.0 之前的版本,Mongoid.master.stats
也应该可以工作。