Tính năng tham gia được hỗ trợ bởi Mongodb 3.2 và các phiên bản mới hơn. Bạn có thể sử dụng liên kết bằng cách sử dụng tổng hợp truy vấn.
Bạn có thể làm điều đó bằng cách sử dụng ví dụ dưới đây:
db.users.aggregate([
// Join with user_info table
{
$lookup:{
from: "userinfo", // other table name
localField: "userId", // name of users table field
foreignField: "userId", // name of userinfo table field
as: "user_info" // alias for userinfo table
}
},
{ $unwind:"$user_info" }, // $unwind used for getting data in object or for one record only
// Join with user_role table
{
$lookup:{
from: "userrole",
localField: "userId",
foreignField: "userId",
as: "user_role"
}
},
{ $unwind:"$user_role" },
// define some conditions here
{
$match:{
$and:[{"userName" : "admin"}]
}
},
// define which fields are you want to fetch
{
$project:{
_id : 1,
email : 1,
userName : 1,
userPhone : "$user_info.phone",
role : "$user_role.role",
}
}
]);
Điều này sẽ cho kết quả như thế này:
{
"_id" : ObjectId("5684f3c454b1fd6926c324fd"),
"email" : "[email protected]",
"userName" : "admin",
"userPhone" : "0000000000",
"role" : "admin"
}
Hy vọng điều này sẽ giúp ích cho bạn hoặc ai đó.
Cảm ơn