2016-05-15 5 views
0

私はYouTube APIを使用してアプリケーションを開発中です。私はMongoDBに保存しているデータを収集しています。私はデータベースを構造化し、ジャンル別にビデオを分割するためのベストプラクティスに関するヒントを得ることを望んでいます。ビデオジャンルのMongoDB構造?

ジャンルごとに新しいコレクションとスキーマを作成するのが最善でしょうか、または私のスキーマを以下のように構造化する必要がありますか?

var vidSchema = new Schema({ 
    genre: String, 
    title: String, 
    artist: String, 
    image: String, 
    link: String, 
    trackId: Number 
}); 

私は特定のジャンルから物事を見つけるためにすべての文書をソートする必要はありません引っ張ったときに、私はので、各ジャンルの新しいスキーマを作成する必要があるように感じます。一方、私が考えていない新しいスキーマ全体を作成することには、欠点があります。何かご意見は?

+0

私は確かに少ない解決策ですが、それはあなたが作成、取得、更新するために実装するメソッドを使用することができます。 1つのスキーマ、1つのコレクション。各スキーマの新しいコレクションを作成することは後で面倒な作業になることがあります。質問。特定のYouTube動画でジャンルはどのようにできるのですか? 1つまたは複数の?これは、「非SQLデータベースストレージシステムでSQLを実行するのは難しい」ということに近づいています。 – zipzit

答えて

1

MongoDBは複雑なスキーマをサポートできます。この場合、1つのスキーマ(vidschema)は他のスキーマのドキュメントへの参照に含めることができます。

ですから、次のようなビデオのための新しいジャンルを見つける新しいスキーマ毎回作成する必要があります:それはあなたの問題を引き起こす文句を言わないあなたの新しいのVIDスキーマ

var vidSchema = new Schema({ 
title: String, 
genre:{ 
type: Schema.ObjectId, 
ref: 'genre' 
}, 
morefields : String 
}) 

var genreSchema = new Schema({ 
genrename: String 
}) 

が、 &ジャンルジャンルスキーマを削除する

+0

これは非常に興味深いです。私はそれについてもう少し読書をしなければならないだろうが、これは私が望むものだと思う。メインの 'vidSchema'の別の' genreSchema'への参照は、これを行う良い方法のようです。ありがとう! –

関連する問題