[英]aggregate array of two collections mongodb
我有两个集合: Clinicas和Medicos 。 Clinicas可以有很多Medicos 。 关系是这样建立的:
medico: [{
medicoId: {
type: mongoose.Schema.Types.ObjectId,
ref: 'medicos'
}
}],
我将有以下 json 结构:
[
{
"nome": "clinica teste",
"medico": [
{
"_id": "5e011a3796a5f80e3c0c8d20",
"medicoId": {
"_id": "5dc5eef455a8f61698a0f2cd",
"nome": "Hancho Crutis",
}
},
{
"_id": "5e011a3796a5f80e3c0c8d1f",
"medicoId": {
"_id": "5df16e5746783116709f09b7",
"nome": "camilinha",
}
}
],
}
]
我想要的是对这些数据进行“连接”。 经过长时间的研究,我得到了这段代码,但响应始终为空。 有人能告诉我我做错了什么吗?
Clinicas.aggregate([
{ $unwind: "$medico"},
{ $lookup: {
from: "medicos",
localField: "medicoId._id",
foreignField: "_id",
as: 'nome'
}},
{ $match: {"medicoId._id": "5df16e5746783116709f09b7"}},
])
您需要在 ObjectId 中进行转换,
var mongoose = require('mongoose');
Clinicas.aggregate([
{ $unwind: "$medico" },
{
$lookup: {
from: "medicos",
localField: "medicoId._id",
foreignField: "_id",
as: 'nome'
}
},
{ $match: { "medicoId._id": mongoose.Types.ObjectId('5df16e5746783116709f09b7') } },
])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.