これはおそらくアドバイスを探す場合です。しかし、私は達成したいものの例としてサンプルコードを提供します。私は最初のバックエンドシステムを構築しようとしており、私は設計上の問題にぶち当たっています。平均スタックを使用してバックエンド設計にどのようにアプローチすればよいですか?
私のMongoDBデータベースは、プロファイル、チーム、下書き、およびユーザーの4つの主要な部分で構成されています。プロファイル(IDを使用してすべてを取得する主なデータ)スキーマには、TeamsおよびDrafts IDで配列を保持するプロパティがあります。アイデアは、プロファイルが提供されたときにIDを使用して、すべてのプロパティに関連するデータを設定するということです。マングースを使用してプロファイルスキーマの
例:マングース使用チームプロフィールスキーマの
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var UserProfileSchema = new Schema({
Name : String,
Email : String,
Admin : Boolean,
Status : Number,
UserID : String,
PrivateProfile: Boolean,
Drafts: [String], //This array holds the draft IDs
Teams:[String] //Holds the team profiles IDs
});
module.exports = mongoose.model('UserProfile', UserProfileSchema);
例:すべてのチームを見つけるためにルートの
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var TeamProfileSchema = new Schema({
Name : String,
CaptainID : String,
CaptainName : String,
Members : [String], //Array of user IDs
DateCreated : Boolean,
Reputation : Number
});
module.exports = mongoose.model('TeamProfile', TeamProfileSchema);
例では、ユーザーがのキャプテンであるプロファイルそのチームに関連付けられているすべてのメンバーを取得します。
router.route('/teams/captain/:user_id')
.get(function (req, res) {
TeamProfile.find({
CaptainID : req.params.user_id
}, function (err, teams) {
if (err)
res.send(err);
for (var x in teams) {
var membersArray = [];
for (var i in teams[x].Members) {
var ID = teams[x].Members[i];
UserProfile.find({
UserID : ID
}, function (err, profile) {
if (err)
res.send(err);
membersArray.push(profile);
});
}
teams[x].Members = membersArray;
console.log(teams[x].Members);
}
res.json(teams);
});
})
私は理解しています帽子は、ルートは動作しませんが、私はこれをプルする方法は?私は、達成したいことを説明するためだけに、よりバニラのアプローチを使用しました。どんな助けも高く評価されます。
これは非常に役に立ちます。ありがとうございます。あなたと記事が示唆するように、私は試して組み合わせを実装します。 – Poot87