Bạn có thể sử dụng $toObjectId
tổng hợp từ mongodb 4.0 chuyển đổi Chuỗi id
thành ObjectId
db.role.aggregate([
{ "$lookup": {
"from": "user",
"let": { "userId": "$_id" },
"pipeline": [
{ "$addFields": { "userId": { "$toObjectId": "$userId" }}},
{ "$match": { "$expr": { "$eq": [ "$userId", "$$userId" ] } } }
],
"as": "output"
}}
])
Hoặc bạn có thể sử dụng $toString
tổng hợp từ mongodb 4.0 chuyển đổi ObjectId
thành String
db.role.aggregate([
{ "$addFields": { "userId": { "$toString": "$_id" }}},
{ "$lookup": {
"from": "user",
"localField": "userId",
"foreignField": "userId",
"as": "output"
}}
])