rig*_*rre 0 ruby postgresql activerecord ruby-on-rails
我正在尝试处理多个数据库条目.我们一直在废弃网站上的数据,而有人忘了对已经创建的当前数据进行检查.我们现在有大约12,000个条目.
我想查看每个条目并删除重复的条目.这是我到目前为止:
for Listing.each(:order => "street_address DESC") do |listing|
if listing.scraped == true
if previous_street_address && listing.street_address == previous_street_address
listing.delete
end
end
previous_street_address = listing.street_address
end
Run Code Online (Sandbox Code Playgroud)
这是数据库架构:
create_table "listings", :force => true do |t|
t.integer "category"
t.string "street_address"
t.string "city"
t.string "state"
t.datetime "availability"
t.integer "bedrooms"
t.integer "bathrooms"
t.integer "square_footage"
t.string "short_description"
t.text "long_description"
t.integer "price"
t.integer "period"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.integer "landlord_id"
t.float "latitude"
t.float "longitude"
t.datetime "expires_at"
t.boolean "warned_of_expiration"
t.integer "views", :default => 0, :null => false
t.boolean "fake"
t.string "short_web_url"
t.string "apartment_no"
t.string "zipcode"
t.datetime "delisted_at"
t.integer "daily_rate"
t.integer "photos_count"
t.string "delisted_reason"
t.boolean "scraped"
t.boolean "cats", :default => false
t.boolean "dogs", :default => false
end
Run Code Online (Sandbox Code Playgroud)
我知道我需要以有意义的方式对数据进行排序,但我不认为街道地址的工作方式就好像地址是"123 Anywhere Street"而我在Listing.street_address.to_i它将它转换为123然后按这些数字排序这可能会导致问题.我正在寻找一些关于这个问题的新眼睛.
12,000并不适合记忆.这个解决方案怎么样:
all = Listing.all
to_remove = all-all.uniq{|el| [el.street_address, ..., ...] }
to_remove.each(&:delete)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
134 次 |
| 最近记录: |