Bạn có thể sử dụng tổng hợp với $match
để phù hợp với điều kiện của bạn và $lookup
để ánh xạ trường địa phương của bạn user
tới user
của bạn bộ sưu tập _id
lĩnh vực:
db.a.aggregate(
[{
$match: {
"type": ObjectId("50ed90f5a70defef23000002"),
"config.name": "alpha"
}
}, {
$lookup: {
from: "users",
localField: "user",
foreignField: "_id",
as: "users"
}
}, {
$unwind: "$users"
}]);
Trong Javascript, với mongoose
ví dụ, bạn có thể làm điều này với:
YourModel.aggregate(
[{
$match: {
"type": ObjectId("50ed90f5a70defef23000002"),
"config.name": "alpha"
}
}, {
$lookup: {
from: "users",
localField: "user",
foreignField: "_id",
as: "users"
}
}, {
$unwind: "$users"
}],
function(err, result) {
console.log("lastname : " + result.users.lastname);
});