Я пытаюсь присоединиться к пн goose.
У меня две коллекции
Master Challenge
История испытаний
Моя История испытаний Содержит поле master_id , которое является ссылкой на _id из Master Challenge
Master Challenge Model
const mongoose = require('mongoose');
const masterChallenge = mongoose.Schema({
title:{
type:String,
},
descripton:{
type:String,
},
challengeType:{
type:Number,
},
});
module.exports = mongoose.model('masterChallenge',masterChallenge);
Модель истории испытаний
const mongoose = require('mongoose');
const challangeHistory= mongoose.Schema({
master_id:{
type: mongoose.Schema.Types.ObjectId,
ref:'masterchallenges'
},
host_user_id:{
type: mongoose.Schema.Types.ObjectId,
ref:'useraccounts'
},
compete_with_id:{
type: mongoose.Schema.Types.ObjectId,
ref:'useraccounts'
},
adjucator_id:{
type: mongoose.Schema.Types.ObjectId,
ref:'useraccounts'
},
status:{
type:Number,
},
created_at:{
type:Date,
}
});
module.exports = mongoose.model('challangeHistory',challangeHistory);
id = 'user _id' (для абзаца ниже)
Я хочу выполнить присоединение к Master Challange, чтобы получить только те записи из Master Challenge, которые имеет host_user_id == id или Compette_with_id == id или adjucator_id == id , если мой тип Master Challenge - 1, иначе статус вызова 0, тогда он не должен выполнять никаких операция для host_user_id или compte_with_id или adjucator_id и вернуть этот документ с вызовом 0.
My Query * 10 58 *
findMasterOnHistory:async function(id){
let dbResponse = await MASTER_CHALLENGE.aggregate([
{$lookup:{from:'challangehistories',localField:'_id',foreignField:'master_id',as:'challangehistories'}},
]);
return dbResponse;
}
Я перепробовал много вещей, которые, похоже, не работают, и я не знаю, как добавить условия в $ lookup .