Tương tự như "tham gia" trong sql, trong Mongo, bạn phải sử dụng "tra cứu".
Để sử dụng tra cứu, bạn phải sử dụng truy vấn "tổng hợp",
Vì vậy, truy vấn mà bạn cần là,
db.collection('users').aggregate({$match:{ email: 'example_email' }},
{$unwind:{path:"$sensors"}},
{$lookup:{from:"sensor", localField: "sensors", foreignField:"sensorId", as:"sensorDetails"}},
(err, userData)=>{
console.log(userData);
})
Vậy truy vấn này đang làm gì,
xem dòng "$ lookup" ---> từ bộ sưu tập "người dùng", nó đang sử dụng trường "cảm biến" (trường cục bộ cho bộ sưu tập người dùng của bạn như id chính trong sql) và tìm nạp thông tin từ bộ sưu tập "cảm biến" khớp với sensorId (nước ngoài trong bộ sưu tập cảm biến) và lưu trữ kết quả trong trường "sensorDetails".
bạn có thể có quyền truy cập vào sensorDetails bằng "userData [0] .sensorDetails" .sensorDetails sẽ là mảng.
Kiểm tra tài liệu chính thức về tra cứu Cũng đọc về thư giãn