我有一个非常大的MongoDB,我需要更新,所以我写了一个javascript的事情来做:
for (var i = 0; i < 1000000; i++) {
db.test.update(
{foo_field: dataArray1[i]},
{$set: { bar_field: dataArray2[i]}},
{upsert:false}
)
}
Run Code Online (Sandbox Code Playgroud)
我担心这个脚本会在很短的时间间隔内执行太多的写操作,并且会降低数据库的性能,所以我想根据复制延迟对速率进行限速.
但是,我找不到强制脚本睡眠或等待一定数量毫秒的方法.它抱怨setInterval和setTImeout,说它们"未定义".这在Mongo有可能吗?
我安装了Ruby 2.0,但Rails无法识别它并告诉我升级到1.9.3.
当我跑:
rails console
Run Code Online (Sandbox Code Playgroud)
我明白了:
Rails 4 prefers to run on Ruby 2.0.
You're running
ruby 1.8.7 (2012-02-08 patchlevel 358) [universal-darwin12.0]
Please upgrade to Ruby 1.9.3 or newer to continue.
Run Code Online (Sandbox Code Playgroud)
所有Rails命令都会发生这种情况.rails new
,rails s
等等,但是,我绝对有安装了Ruby 2.0:
ruby -v
ruby 2.0.0p195 (2013-05-14 revision 40734) [x86_64-darwin12.3.0]
Run Code Online (Sandbox Code Playgroud)
对于不正确的Ruby默认版本,它似乎也不是问题:
rvm list
rvm rubies
ruby-1.9.3-p429 [ x86_64 ]
=* ruby-2.0.0-p195 [ x86_64 ]
# => - current
# =* - current && default
# * - default
Run Code Online (Sandbox Code Playgroud)
我在某处读到了我的PATH变量可能存在问题:
printenv PATH
/Users/Aoeu/.rvm/gems/ruby-2.0.0-p195/bin:/Users/Aoeu/.rvm/gems/ruby-2.0.0- p195@global/bin:/Users/Aoeu/.rvm/rubies/ruby-2.0.0-p195/bin:/Users/Aoeu/.rvm/bin:/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:/usr/bin:/bin:/usr/sbin:/sbin …
Run Code Online (Sandbox Code Playgroud)