TypeScriptを使用してMicroServicesを開発しています。バックエンドはMongoDBで、Mongooseを使用しています。 1つのマイクロサービスは学校を扱い、もう1つのマイクロサービスはトレーニングを扱います。各MicroServiceは独自のデータベースを保持しています。MongoDBの他のデータベースからエンティティを参照するには?
学校モデルでは、trainingID
フィールドに基づいてトレーニングを参照する必要があり、MongoDBが提供するフィールドは_ID
ではありません。
トレーニングコレクションのtrainingID
の値が、trainingID
と同じフィールド名でSchool Collectionに保持されるように、この参照をプレーンストリングとして定義しています。ここで
SchoolModel.ts
import { Document, Schema, Model, model } from "mongoose";
import { ISchoolModel } from './ISchoolModel';
export const schoolSchema = new Schema({
schoolId: String,
schoolName: String,
trainingId: String
});
export interface ISchool extends ISchoolModel, Document {
}
export const SchoolModel: Model<ISchool> = model<ISchool>("School", schoolSchema);
TrainingModel.ts
import { Document, Schema, Model, model } from "mongoose";
import { ITrainingModel } from './ITrainingModel';
export const trainingSchema = new Schema({
trainingId: String,
trainingName: String,
trainingDescription: String
});
export interface ITraining extends ITrainingModel, Document {
}
export const TrainingModel: Model<ITraining> = model<ITraining>("Training", trainingSchema);
質問
これは、への参照を定義するための最良の方法です他のデータベースのエンティティ?
私はmicroservicesについて考えるとき、私は、スタンドアロンと依存関係として別のサービスを持つことができないアプリケーションが含まれて自己を考えます。 – user602525
しかし、彼らがする必要があるとき、彼らは単に主キーのようなものを保持します。私はあなたが描写する方法以外にこれを行うには、とにかく他には見ません。私はそれらの訓練を推測していますID女の子は不変です。 –