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



使用rails/mongodb,存储编辑日期的最佳方式是什么?我不关心编辑了什么,但我关心的是编辑的日期。

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

一本书被多次借出和借阅——我只想存储借出日期和借阅日期。

是否可以在一个集合中的单个数组中做到这一点,或者我应该为"checkout"和条目(或"book"有许多"checkout")做一个单独的集合?

根据您给出的图书示例,如果您不打算有数千个签出,我认为最好的方法是在图书集合中嵌入一个签出集合(带有日期和您想要的任何字段)。

但是你必须记住,每次你将加载一个书,它的所有的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

最新更新