У меня следующий сценарий: у меня две коллекции: medicos и clinicas . Medicos связан с клиникой своим ObjectId. Что я хочу, так это чтобы у меня были только клиники, в которых есть лекарства. Итак, у меня есть этот код:
Clinicas.aggregate([
$group: {
_id: {
nome: "$nome"
}
}
},
{
$lookup: {
from: "medicos",
localField: "medico.medicoId",
foreignField: "_id._id",
as: 'result'
}
},
Но что-то не так: он возвращает все лекарства в как: 'result' . Например: у меня есть 4 документа в коллекции Medicos и два документа в коллекции Clinica. В первой клинике 2 медикамента, а во втором - 1, но массив as: 'result' приносит мне все документы медикаментов для коллекции из 2 клиник, как вы можете видеть.
у этого есть 2 медика
модель медик
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const MedicoSchema = new Schema({
//cod_medico:{type:Integer},
nome:{
type: String,
required: true,
maxlength: 80
},
},
);
module.exports = mongoose.model('medicos', MedicoSchema);
И в базе данных название коллекции также 'medicos'