新手问题 如果我想在某个属性里设置自增长怎么弄

sanvi · 2013年04月19日 · 最后由 sanivbyfish 回复于 2013年04月19日 · 2180 次阅读

现在是用 mongoid

比如有 User 个 model,然后 name 想默认为 访客 1,访客 2,访客 3.......

这个样子

mongodb 里面可有触发器?

#1 楼 @wublue12 不太懂。。。。

#2 楼 @sanivbyfish 我知道 mysql 里可以做个触发器实现

#3 楼 @wublue12 mysql 应该简单点,直接拿访客+id 就行了。。

after_save 按 id 给 name 写回去行不?

ActiveRecord 的办法,Mongoid 不熟。

class User < ActiveRecord::Base
   after_create :set_default_name

   private
   def set_default_name
      update_attribute(:name, "访客#{id}") if name.blank?
   end
end

是我就弄个 redis 了……

加个 timestamp,where(:timestamp.lt #{Time.now.to_i}).count

#10 楼 @sanivbyfish 我一直觉得自增这玩意不好,特别是大访问量的时候,可能数据库发号可能会锁住,但是 mongo 不怎么了解,用内存型 increase 的话会好一些。

#11 楼 @vincenttone 果然蛋疼,直接上 redis 好啦。。。省事

需要 登录 后方可回复, 如果你还没有账号请 注册新账号