如何在mongodb中保留历史数据而不是引用更新的数据?

时间:2012-12-26 03:17:23

标签: ruby-on-rails mongodb mongoid nosql

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

Order{
  has may products
}

Product{
  name: string
  price: float
}

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

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

提前致谢!

1 个答案:

答案 0 :(得分:0)

您可以将参考产品的“_id”和“价格”存储到订单文档中。因此,典型的订单文档如下所示:

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