Aby wykonać sprzężenie z dwoma tabelami, upewnij się, że typ dla obu pól, tj. localField i foriegnField powinno być takie samo.
Lub
Z mongodb 4.0 możesz łatwo zmienić typ String do ObjectId przy użyciu $toObjectId
agregacja
productSchema.aggregate([
{ "$lookup": {
"from": "supplierSchema",
"let": { "supplierId": { "$toObjectId": "$supplierId" }},
"pipeline": [
{ "$match": { "$expr": { "$eq": ["$_id", "$$supplierId"] }}}
]
as: "supplier"
}}
])