私はこのような文書のレイアウトを持っている:MongoDBに埋め込みドキュメントを構築する最も良い方法は何ですか?
Program = {
'_id':ObjectId('4321...'),
'Title':'The Title',
'Episodes':[
{
'Ep_ID':'234122', # this is unique
'Title': 'Ep1',
'Duration':45.2 },
'Ep_ID':'342343' # unique
'Title': 'Ep2',
'Duration':32.3 }
]
}
私がやりたい何がこのように、各エピソード内の他の埋め込まれたドキュメントである:
Program = {
'_id':ObjectId('4321...'),
'Title':'The Title',
'Episodes':[
{
'Ep_ID':'234122' # this is unique
'Title': 'Ep1',
'Duration':45.2,
'FileAssets':[
{ 'FileName':'video1.mov', 'FileSize':2348579234 },
{ 'FileName':'video2.mov', 'FileSize':32343233 }
]
},
{
'Ep_ID':'342343' # unique
'Title': 'Ep2',
'Duration':32.3,
'FileAssets':[
{ 'FileName':'video1.mov', 'FileSize':12423773 },
{ 'FileName':'video2.mov', 'FileSize':456322 }
]
}
]
}
しかし、私は把握することはできませんその「3rd」レベルでdocを追加する/ mod/delする方法。それは可能なのか、あるいは良いデザインですか?すべてのデータを1つの文書にまとめるのは大変好きですが、管理は複雑すぎるように見え始めています。
私が持っていたもう1つの考えは、キーとしてサブ文書に存在するユニークな値を使用することでした。私は私のサブ文書について考えてきましたが、それらはすべて一種のユニークな価値を持っています。だから私はこれを行うことができます:
Program = {
'_id':ObjectId('4321...'),
'Title':'The Title',
'Ep_ID_234122':{episode data},
'Ep_ID_342343':{episode data},
'FileAsset_BigRaid_Video1.mov':{'Ep_ID_234122', + other file asset data},
'FileAsset_BigRaid_video2.mov':{'Ep_ID_234122', + other file asset data}
}
すべての考えは素晴らしいでしょう!
ありがとう、ええ、構造は私の頭の中でやっている。良いポイントは、キーに一致する文字列です。私が今考えているのは、入れ子にすることですが、最大レベルは1つだけです。ですから、私は 'FileAssets'リストを作り、各ファイル資産のエピソードを参照することができます。私はそれがうまくいくと思う。それ以外の場合は別のコレクションに戻ります。あなたのフィードバックをありがとう。本当に役立つ – MFB