MongoDB / Rails:在数组中存储编辑?

时间:2013-04-29 19:31:46

标签: ruby-on-rails mongodb

使用rails / mongodb,存储编辑日期的最佳方法是什么?我不关心编辑的内容,但我确实关心它的编辑日期。

更好的模型是图书馆的例子:

一本书已经签出并多次检查 - 我只是想存储签出日期和签入日期。

是否可以在一个集合中的单个数组中执行此操作,或者我应该为“结帐”和条目(或“预订”有多个“结帐”)单独收集?

1 个答案:

答案 0 :(得分:1)

根据您提供的书籍示例,如果您不打算进行数千次结帐,我认为最好的方法是在Books集合中添加一个嵌入式Checkouts集合(包含您想要的日期和任何字段)

但是你必须记住,每次你加载一本书时,它的所有Checkout都会被加载。基本上,如果你经常需要提取书籍的日期,那就太棒了,但如果很少见,你可能不想这样做。

class Book
    include Mongoid::Document
    include Mongoid::Timestamps

    embeds_many :checkouts

    accepts_nested_attributes_for :checkouts, :allow_destroy => true

    field :book_name, :type => String

    attr_accessible :book_name
end

class Checkout
    include Mongoid::Document
    include Mongoid::Timestamps

    embedded_in :book, inverse_of: :checkouts
end