【问题标题】:How to keep history data instead of reference to updated one in mongodb?如何保留历史数据而不是参考 mongodb 中的更新数据?
【发布时间】:2012-12-26 03:17:22
【问题描述】:

在很多情况下,我需要在创建后保持数据不变。但我还需要参考更新的信息来创建新记录。例如,我有两个集合;

Order{
  has may products
}

Product{
  name: string
  price: float
}

我在创建订单时,需要参考当前的产品信息,放入订单文档中。但是在我创建订单后,我不希望以后更改产品时更改它。我怎样才能在 mongodb 中实现这一点?我应该使用 embeds_many 关系吗?

顺便说一句,我在 Rails 应用程序中使用 mongoid。

提前致谢!

【问题讨论】:

    标签: ruby-on-rails mongodb mongoid nosql


    【解决方案1】:

    您可以将参考产品的“_id”和“价格”存储到您的订单文档中。所以一个典型的订单文件是这样的:

    {_id: 1, productsOrdered: [{_id: 1, price: 100, number: 2},{_id:3, price:20, number: 10},.....,{_id: 9, price:11, number:1}], .....}
    

    【讨论】:

    • 感谢您的回答。我实际上想保留产品对象的整个快照。
    • Zou 必须将整个对象存储在您的订单中,或者为产品的历史创建更复杂的逻辑。 (取决于什么一直在变化)
    猜你喜欢
    • 2014-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-27
    相关资源
    最近更新 更多