#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 })