Мангуст Заполняет коллекцию выбора в зависимости от типа или состояния пользователя

#node.js #typescript #mongodb #mongoose #mern

Вопрос:

У меня есть схема для хранения разговоров между обычным пользователем и пользователем, пользователем и пользователем IAM, но у меня разные коллекции как для пользователя, так и для пользователя IAM, поэтому при заполнении я должен заполнять их в зависимости от типа пользователя

 const conversation_schema = new Schema({  fromUserType: {  type: String,  trim: true,  },  from: {  type: ObjectID,  // ref: 'User' or it can be both the users  // ref: 'IamUser'  },  toUserType: {  type: String,  trim: true,  },  to: {  type: ObjectID,  // ref: 'User', or it can be both the users  // ref: 'IamUser'  },  conversationBody: {  type: String,  },  conversationType: {  type: String,  },  read: {  type: Boolean,  default: false,  },  createdAt: {  type: Date,  default: new Date(),  }, });  

Я пытаюсь заполнить пользователя из соответствующей коллекции типов пользователей на основе этого запроса, я хочу знать, как заполнить эти данные на основе условия

 conversations.find({  $or: [  filter_query,  filter_query2,  ],  })  .populate({ path: 'to', model: user, select: { Name: 1, Picture: 1 } })  .populate({ path: 'from', model: user, select: { Name: 1, Picture: 1 } })  // .populate({path: 'to', model: iamUser, toUserType: { $eq: 'iamUser' }})  // .populate({path: 'to', model: iamUser, fromUserType: { $eq: 'iamUser' }})  // .populate([{path: 'to', model: user, toUserType: { $eq: 'user' } },{path: 'from', model: user, fromUserType: { $eq: 'user' } }])  // .populate([{path: 'to', model: iamUser, toUserType: { $eq: 'iamUser' } },{path: 'from', model: iamUser, fromUserType: { $eq: 'iamUser' } }])  .sort({ createdAt: -1 })