【问题标题】:Repair Mongodb using ruby-mongodb-driver使用 ruby​​-mongodb-driver 修复 Mongodb
【发布时间】:2012-05-10 13:52:34
【问题描述】:

是否有任何人知道修复 mongodb 的 API 是通过 ruby​​-mongodb-driver 损坏数据库的情况。

翻看documentation好像没有

任何人都可以确认。

或者任何人都可以建议我修复 mongod 数据库的更好方法。

目前我知道的

./mongod --repair options

./mongo

> use [database]
> db.repairDatabase()

我还看到了一个shell选项

 ./mongo --help 

options:
  --shell               run the shell after executing files

如何编写脚本(.js)来修复给定的数据库

【问题讨论】:

  • 我觉得db.repairDatabase() 最方便。你做不到吗?
  • 查看this答案。
  • @benchwarmer 我知道我想要的只是从 ruby​​ 程序运行代码的更好方法,谢谢

标签: mongodb


【解决方案1】:

对于 mongo shell,数据库名称可以作为可选参数给出。这是一个可以说明这一点的 shell 脚本。

repair.sh

#!/bin/sh
if [ $# -lt 1 ]
then    echo "$0 - repair mongodb database"
        echo "usage: $0 database-name"
        exit 1
fi
mongo $1 --eval 'printjson(db.repairDatabase())'

这是一个 ruby​​ 1.9 等价物。

repair.rb

#!/bin/env ruby
require 'mongo'
if ARGV.length < 1
    puts "$0 - repair mongodb database"
    puts "usage: $0 database-name"
    exit 1
end
db = Mongo::Connection.new[ARGV[0]]
puts db.command({repairDatabase: 1})

在常见问题解答和 DB 文档中有更多信息。

http://api.mongodb.org/ruby/current/file.FAQ.html

http://api.mongodb.org/ruby/current/Mongo/DB.html

某些文档的导航并不明显 - 我们会努力改进它。

【讨论】:

  • 是 Mongo::Connection.new(ARGV[0]) 还是 Mongo::Connection.new.db(ARGV[0])
猜你喜欢
  • 2018-07-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-28
  • 1970-01-01
  • 2019-03-10
  • 2019-03-12
  • 1970-01-01
相关资源
最近更新 更多