MongoDB を使用して CMS のようなシステムを扱っています。各アイテムはバージョン管理されることを意図しており、ドラフト バージョンもある必要があります。ほとんどの場合、現在公開されているバージョンのみに関心があります。
そこで、次のように考えました。
{
_id: "42",
current: {
name: "item1",
detail: "baz"
},
draft: {
name: "item1",
detail: "draft stuff"
},
versions: [
{
version: "1",
name: "item1"
detail: "foo"
},
{
version: "2",
name: "item1"
detail: "bar"
}
]
}
新しい最新版の作成は、最初に「ドラフト」を通過し、公開段階で最新版を置き換え、古い最新版は一連のバージョンに移動します。同様に、古いバージョンへのロールバックは、ドラフトへのコピーを作成することで発生します。
それはMongoDBのコンテキストで意味がありますか? 現在のアイテムと同じドキュメントにバージョンを配列として保持する必要がありますか?