Skip to content

Instantly share code, notes, and snippets.

@jimjh
Last active December 17, 2015 08:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jimjh/5581460 to your computer and use it in GitHub Desktop.
Save jimjh/5581460 to your computer and use it in GitHub Desktop.
Fix Yelp primary keys.
#!/usr/bin/env ruby
require 'mongo'
require 'ruby-progressbar'
conn = Mongo::Connection.new
db = conn['yelp']
coll = db['reviews']
user_ids, biz_ids = {}, {}
progress = ProgressBar.create(title: "Reviews", starting_at: 0, total: coll.count)
coll.find.each do |review|
user_id = (user_ids[review['user_id']] ||= user_ids.count)
biz_id = (biz_ids[review['business_id']] ||= biz_ids.count)
coll.update({'_id' => review['_id']}, {'$set' => {'user_id' => user_id, 'business_id' => biz_id}})
progress.increment
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment