我們正在使用TypeScript開發MicroServices。後端是MongoDB,我們正在使用Mongoose。一個MicroService處理學校,另一個MicroService處理培訓。每個MicroService都維護着自己的數據庫。如何從MongoDB中的其他數據庫中引用實體?
學校模式需要參考培訓基於trainingID
字段而不是_ID
由MongoDB提供的字段。
我們將此參考定義爲普通字符串,使Training Collection中的trainingID
的值將在School Collection中保存,其字段名稱與trainingID
相同。
這是迄今爲止代碼:
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);
問題
這是定義一個基準的最佳方式其他數據庫的實體?
當我覺得微服務的,我覺得自我包含的,可以獨立位置,並沒有其他的服務作爲一個依賴應用程序。 – user602525
但是當他們必須的時候,他們只是持有像主鍵這樣的東西。除了你描述的方式之外,我還沒有看到其他任何東西。我猜那些trainingID女孩是不可改變的。 –