Để tham gia nhiều bộ sưu tập với $lookup trong mongodb, bạn thực sự có thể xâu chuỗi nhiều giai đoạn $lookup. Dựa trên tên của các bộ sưu tập được chia sẻ bởi profesor79, bạn có thể làm điều này
db. sivaUserInfo. tổng hợp[[
{ tra cứu $. {
từ. "vai trò người dùng siva",
trường địa phương. "tên người dùng",
vùng ngoại quốc. "tên người dùng",
như. "vai trò người dùng"
}
},
{
thư giãn $. "$userVai trò"
},
{
tra cứu $. {
từ. "sivaUserInfo",
trường địa phương. "tên người dùng",
vùng ngoại quốc. "tên người dùng",
như. "thông tin người dùng"
}
},
{
thư giãn $. "$userInfo"
}
]]
Trước tiên, chúng tôi sẽ giới thiệu cấu trúc và mối quan hệ giữa từng bộ sưu tập, sau đó chúng tôi sẽ giới thiệu cách sử dụng $lookup trong tập hợp mongodb để có được đầu ra mong muốn
Tài liệu trong Bộ sưu tập người dùng
/* 1 */
{
"_id" : ObjectId["6173e5fe7fc8622cbc56a108"],
"name" : "Jeff",
"age" : 20,
"ref_id" : "457935c0-33ed-11ec-aac1-dd97bcc28a8a",
"__v" : 0
}
/* 2 */
{
"_id" : ObjectId["6173e6067fc8622cbc56a10a"],
"name" : "Jason",
"age" : 25,
"ref_id" : "4a4bcc70-33ed-11ec-aac1-dd97bcc28a8a",
"__v" : 0
}
Tài liệu trong Bộ sưu tập danh mục chi phí
/* 1 */
{
"_id" : ObjectId["6173e6577fc8622cbc56a10c"],
"label" : "Food",
"user_ref_id" : "457935c0-33ed-11ec-aac1-dd97bcc28a8a",
"ref_id" : "7a27b0d0-33ed-11ec-aac1-dd97bcc28a8a",
"__v" : 0
}
/* 2 */
{
"_id" : ObjectId["6173e6677fc8622cbc56a10e"],
"label" : "Entertainment",
"user_ref_id" : "457935c0-33ed-11ec-aac1-dd97bcc28a8a",
"ref_id" : "84021f00-33ed-11ec-aac1-dd97bcc28a8a",
"__v" : 0
}
/* 3 */
{
"_id" : ObjectId["6173e69d7fc8622cbc56a112"],
"label" : "Transportation",
"user_ref_id" : "4a4bcc70-33ed-11ec-aac1-dd97bcc28a8a",
"ref_id" : "a3e28580-33ed-11ec-aac1-dd97bcc28a8a",
"__v" : 0
}
/* 4 */
{
"_id" : ObjectId["6173e6d07fc8622cbc56a114"],
"label" : "Monthly Installment",
"user_ref_id" : "4a4bcc70-33ed-11ec-aac1-dd97bcc28a8a",
"ref_id" : "c2a40e80-33ed-11ec-aac1-dd97bcc28a8a",
"__v" : 0
}
Tài liệu trong Tập hợp chi phí
/* 1 */
{
"_id" : ObjectId["6173e7677fc8622cbc56a116"],
"label" : "Mc Donald",
"value" : 11.5,
"expenses_category_ref_id" : "7a27b0d0-33ed-11ec-aac1-dd97bcc28a8a",
"ref_id" : "1cacea50-33ee-11ec-aac1-dd97bcc28a8a",
"__v" : 0
}
/* 2 */
{
"_id" : ObjectId["6173e7767fc8622cbc56a118"],
"label" : "KFC",
"value" : 15,
"expenses_category_ref_id" : "7a27b0d0-33ed-11ec-aac1-dd97bcc28a8a",
"ref_id" : "25358420-33ee-11ec-aac1-dd97bcc28a8a",
"__v" : 0
}
/* 3 */
{
"_id" : ObjectId["6173e78a7fc8622cbc56a11a"],
"label" : "Sushi King",
"value" : 35,
"expenses_category_ref_id" : "7a27b0d0-33ed-11ec-aac1-dd97bcc28a8a",
"ref_id" : "312787b0-33ee-11ec-aac1-dd97bcc28a8a",
"__v" : 0
}
/* 4 */
{
"_id" : ObjectId["6173e7e07fc8622cbc56a11c"],
"label" : "karaoke",
"value" : 45,
"expenses_category_ref_id" : "84021f00-33ed-11ec-aac1-dd97bcc28a8a",
"ref_id" : "649c2330-33ee-11ec-aac1-dd97bcc28a8a",
"__v" : 0
}
/* 5 */
{
"_id" : ObjectId["6173e7f87fc8622cbc56a11e"],
"label" : "Petrol Fee",
"value" : 65,
"expenses_category_ref_id" : "a3e28580-33ed-11ec-aac1-dd97bcc28a8a",
"ref_id" : "72f1b940-33ee-11ec-aac1-dd97bcc28a8a",
"__v" : 0
}
/* 6 */
{
"_id" : ObjectId["6173e8047fc8622cbc56a120"],
"label" : "Car Maintenance Service",
"value" : 150,
"expenses_category_ref_id" : "a3e28580-33ed-11ec-aac1-dd97bcc28a8a",
"ref_id" : "7a206860-33ee-11ec-aac1-dd97bcc28a8a",
"__v" : 0
}
/* 7 */
{
"_id" : ObjectId["6173e8147fc8622cbc56a122"],
"label" : "House Loan",
"value" : 1500,
"expenses_category_ref_id" : "c2a40e80-33ed-11ec-aac1-dd97bcc28a8a",
"ref_id" : "83b31f30-33ee-11ec-aac1-dd97bcc28a8a",
"__v" : 0
}
/* 8 */
{
"_id" : ObjectId["6173e8237fc8622cbc56a124"],
"label" : "Insurance",
"value" : 230,
"expenses_category_ref_id" : "c2a40e80-33ed-11ec-aac1-dd97bcc28a8a",
"ref_id" : "8cc22710-33ee-11ec-aac1-dd97bcc28a8a",
"__v" : 0
}
Mối quan hệ giữa mỗi Bộ sưu tập
Như chúng ta có thể quan sát sơ đồ trên, bộ sưu tập
/* 1 */
{
"_id" : ObjectId["6173e6577fc8622cbc56a10c"],
"label" : "Food",
"user_ref_id" : "457935c0-33ed-11ec-aac1-dd97bcc28a8a",
"ref_id" : "7a27b0d0-33ed-11ec-aac1-dd97bcc28a8a",
"__v" : 0
}
/* 2 */
{
"_id" : ObjectId["6173e6677fc8622cbc56a10e"],
"label" : "Entertainment",
"user_ref_id" : "457935c0-33ed-11ec-aac1-dd97bcc28a8a",
"ref_id" : "84021f00-33ed-11ec-aac1-dd97bcc28a8a",
"__v" : 0
}
/* 3 */
{
"_id" : ObjectId["6173e69d7fc8622cbc56a112"],
"label" : "Transportation",
"user_ref_id" : "4a4bcc70-33ed-11ec-aac1-dd97bcc28a8a",
"ref_id" : "a3e28580-33ed-11ec-aac1-dd97bcc28a8a",
"__v" : 0
}
/* 4 */
{
"_id" : ObjectId["6173e6d07fc8622cbc56a114"],
"label" : "Monthly Installment",
"user_ref_id" : "4a4bcc70-33ed-11ec-aac1-dd97bcc28a8a",
"ref_id" : "c2a40e80-33ed-11ec-aac1-dd97bcc28a8a",
"__v" : 0
}
2 thực sự có mối quan hệ giữa cha và con nơi nó lưu trữ trường /* 1 */
{
"_id" : ObjectId["6173e6577fc8622cbc56a10c"],
"label" : "Food",
"user_ref_id" : "457935c0-33ed-11ec-aac1-dd97bcc28a8a",
"ref_id" : "7a27b0d0-33ed-11ec-aac1-dd97bcc28a8a",
"__v" : 0
}
/* 2 */
{
"_id" : ObjectId["6173e6677fc8622cbc56a10e"],
"label" : "Entertainment",
"user_ref_id" : "457935c0-33ed-11ec-aac1-dd97bcc28a8a",
"ref_id" : "84021f00-33ed-11ec-aac1-dd97bcc28a8a",
"__v" : 0
}
/* 3 */
{
"_id" : ObjectId["6173e69d7fc8622cbc56a112"],
"label" : "Transportation",
"user_ref_id" : "4a4bcc70-33ed-11ec-aac1-dd97bcc28a8a",
"ref_id" : "a3e28580-33ed-11ec-aac1-dd97bcc28a8a",
"__v" : 0
}
/* 4 */
{
"_id" : ObjectId["6173e6d07fc8622cbc56a114"],
"label" : "Monthly Installment",
"user_ref_id" : "4a4bcc70-33ed-11ec-aac1-dd97bcc28a8a",
"ref_id" : "c2a40e80-33ed-11ec-aac1-dd97bcc28a8a",
"__v" : 0
}
0 tương đương với /* 1 */
{
"_id" : ObjectId["6173e6577fc8622cbc56a10c"],
"label" : "Food",
"user_ref_id" : "457935c0-33ed-11ec-aac1-dd97bcc28a8a",
"ref_id" : "7a27b0d0-33ed-11ec-aac1-dd97bcc28a8a",
"__v" : 0
}
/* 2 */
{
"_id" : ObjectId["6173e6677fc8622cbc56a10e"],
"label" : "Entertainment",
"user_ref_id" : "457935c0-33ed-11ec-aac1-dd97bcc28a8a",
"ref_id" : "84021f00-33ed-11ec-aac1-dd97bcc28a8a",
"__v" : 0
}
/* 3 */
{
"_id" : ObjectId["6173e69d7fc8622cbc56a112"],
"label" : "Transportation",
"user_ref_id" : "4a4bcc70-33ed-11ec-aac1-dd97bcc28a8a",
"ref_id" : "a3e28580-33ed-11ec-aac1-dd97bcc28a8a",
"__v" : 0
}
/* 4 */
{
"_id" : ObjectId["6173e6d07fc8622cbc56a114"],
"label" : "Monthly Installment",
"user_ref_id" : "4a4bcc70-33ed-11ec-aac1-dd97bcc28a8a",
"ref_id" : "c2a40e80-33ed-11ec-aac1-dd97bcc28a8a",
"__v" : 0
}
1 trong bộ sưu tập /* 1 */
{
"_id" : ObjectId["6173e6577fc8622cbc56a10c"],
"label" : "Food",
"user_ref_id" : "457935c0-33ed-11ec-aac1-dd97bcc28a8a",
"ref_id" : "7a27b0d0-33ed-11ec-aac1-dd97bcc28a8a",
"__v" : 0
}
/* 2 */
{
"_id" : ObjectId["6173e6677fc8622cbc56a10e"],
"label" : "Entertainment",
"user_ref_id" : "457935c0-33ed-11ec-aac1-dd97bcc28a8a",
"ref_id" : "84021f00-33ed-11ec-aac1-dd97bcc28a8a",
"__v" : 0
}
/* 3 */
{
"_id" : ObjectId["6173e69d7fc8622cbc56a112"],
"label" : "Transportation",
"user_ref_id" : "4a4bcc70-33ed-11ec-aac1-dd97bcc28a8a",
"ref_id" : "a3e28580-33ed-11ec-aac1-dd97bcc28a8a",
"__v" : 0
}
/* 4 */
{
"_id" : ObjectId["6173e6d07fc8622cbc56a114"],
"label" : "Monthly Installment",
"user_ref_id" : "4a4bcc70-33ed-11ec-aac1-dd97bcc28a8a",
"ref_id" : "c2a40e80-33ed-11ec-aac1-dd97bcc28a8a",
"__v" : 0
}
2Tiếp tục, chúng tôi cũng có bộ sưu tập
/* 1 */
{
"_id" : ObjectId["6173e6577fc8622cbc56a10c"],
"label" : "Food",
"user_ref_id" : "457935c0-33ed-11ec-aac1-dd97bcc28a8a",
"ref_id" : "7a27b0d0-33ed-11ec-aac1-dd97bcc28a8a",
"__v" : 0
}
/* 2 */
{
"_id" : ObjectId["6173e6677fc8622cbc56a10e"],
"label" : "Entertainment",
"user_ref_id" : "457935c0-33ed-11ec-aac1-dd97bcc28a8a",
"ref_id" : "84021f00-33ed-11ec-aac1-dd97bcc28a8a",
"__v" : 0
}
/* 3 */
{
"_id" : ObjectId["6173e69d7fc8622cbc56a112"],
"label" : "Transportation",
"user_ref_id" : "4a4bcc70-33ed-11ec-aac1-dd97bcc28a8a",
"ref_id" : "a3e28580-33ed-11ec-aac1-dd97bcc28a8a",
"__v" : 0
}
/* 4 */
{
"_id" : ObjectId["6173e6d07fc8622cbc56a114"],
"label" : "Monthly Installment",
"user_ref_id" : "4a4bcc70-33ed-11ec-aac1-dd97bcc28a8a",
"ref_id" : "c2a40e80-33ed-11ec-aac1-dd97bcc28a8a",
"__v" : 0
}
3 cũng có mối quan hệ giữa cha và con nơi nó lưu trữ trường /* 1 */
{
"_id" : ObjectId["6173e6577fc8622cbc56a10c"],
"label" : "Food",
"user_ref_id" : "457935c0-33ed-11ec-aac1-dd97bcc28a8a",
"ref_id" : "7a27b0d0-33ed-11ec-aac1-dd97bcc28a8a",
"__v" : 0
}
/* 2 */
{
"_id" : ObjectId["6173e6677fc8622cbc56a10e"],
"label" : "Entertainment",
"user_ref_id" : "457935c0-33ed-11ec-aac1-dd97bcc28a8a",
"ref_id" : "84021f00-33ed-11ec-aac1-dd97bcc28a8a",
"__v" : 0
}
/* 3 */
{
"_id" : ObjectId["6173e69d7fc8622cbc56a112"],
"label" : "Transportation",
"user_ref_id" : "4a4bcc70-33ed-11ec-aac1-dd97bcc28a8a",
"ref_id" : "a3e28580-33ed-11ec-aac1-dd97bcc28a8a",
"__v" : 0
}
/* 4 */
{
"_id" : ObjectId["6173e6d07fc8622cbc56a114"],
"label" : "Monthly Installment",
"user_ref_id" : "4a4bcc70-33ed-11ec-aac1-dd97bcc28a8a",
"ref_id" : "c2a40e80-33ed-11ec-aac1-dd97bcc28a8a",
"__v" : 0
}
4 tương đương với /* 1 */
{
"_id" : ObjectId["6173e6577fc8622cbc56a10c"],
"label" : "Food",
"user_ref_id" : "457935c0-33ed-11ec-aac1-dd97bcc28a8a",
"ref_id" : "7a27b0d0-33ed-11ec-aac1-dd97bcc28a8a",
"__v" : 0
}
/* 2 */
{
"_id" : ObjectId["6173e6677fc8622cbc56a10e"],
"label" : "Entertainment",
"user_ref_id" : "457935c0-33ed-11ec-aac1-dd97bcc28a8a",
"ref_id" : "84021f00-33ed-11ec-aac1-dd97bcc28a8a",
"__v" : 0
}
/* 3 */
{
"_id" : ObjectId["6173e69d7fc8622cbc56a112"],
"label" : "Transportation",
"user_ref_id" : "4a4bcc70-33ed-11ec-aac1-dd97bcc28a8a",
"ref_id" : "a3e28580-33ed-11ec-aac1-dd97bcc28a8a",
"__v" : 0
}
/* 4 */
{
"_id" : ObjectId["6173e6d07fc8622cbc56a114"],
"label" : "Monthly Installment",
"user_ref_id" : "4a4bcc70-33ed-11ec-aac1-dd97bcc28a8a",
"ref_id" : "c2a40e80-33ed-11ec-aac1-dd97bcc28a8a",
"__v" : 0
}
1 trong bộ sưu tập /* 1 */
{
"_id" : ObjectId["6173e6577fc8622cbc56a10c"],
"label" : "Food",
"user_ref_id" : "457935c0-33ed-11ec-aac1-dd97bcc28a8a",
"ref_id" : "7a27b0d0-33ed-11ec-aac1-dd97bcc28a8a",
"__v" : 0
}
/* 2 */
{
"_id" : ObjectId["6173e6677fc8622cbc56a10e"],
"label" : "Entertainment",
"user_ref_id" : "457935c0-33ed-11ec-aac1-dd97bcc28a8a",
"ref_id" : "84021f00-33ed-11ec-aac1-dd97bcc28a8a",
"__v" : 0
}
/* 3 */
{
"_id" : ObjectId["6173e69d7fc8622cbc56a112"],
"label" : "Transportation",
"user_ref_id" : "4a4bcc70-33ed-11ec-aac1-dd97bcc28a8a",
"ref_id" : "a3e28580-33ed-11ec-aac1-dd97bcc28a8a",
"__v" : 0
}
/* 4 */
{
"_id" : ObjectId["6173e6d07fc8622cbc56a114"],
"label" : "Monthly Installment",
"user_ref_id" : "4a4bcc70-33ed-11ec-aac1-dd97bcc28a8a",
"ref_id" : "c2a40e80-33ed-11ec-aac1-dd97bcc28a8a",
"__v" : 0
}
2Tổng hợp $tra cứu
Bộ điều khiển bên dưới thuộc về tuyến đường
/* 1 */
{
"_id" : ObjectId["6173e6577fc8622cbc56a10c"],
"label" : "Food",
"user_ref_id" : "457935c0-33ed-11ec-aac1-dd97bcc28a8a",
"ref_id" : "7a27b0d0-33ed-11ec-aac1-dd97bcc28a8a",
"__v" : 0
}
/* 2 */
{
"_id" : ObjectId["6173e6677fc8622cbc56a10e"],
"label" : "Entertainment",
"user_ref_id" : "457935c0-33ed-11ec-aac1-dd97bcc28a8a",
"ref_id" : "84021f00-33ed-11ec-aac1-dd97bcc28a8a",
"__v" : 0
}
/* 3 */
{
"_id" : ObjectId["6173e69d7fc8622cbc56a112"],
"label" : "Transportation",
"user_ref_id" : "4a4bcc70-33ed-11ec-aac1-dd97bcc28a8a",
"ref_id" : "a3e28580-33ed-11ec-aac1-dd97bcc28a8a",
"__v" : 0
}
/* 4 */
{
"_id" : ObjectId["6173e6d07fc8622cbc56a114"],
"label" : "Monthly Installment",
"user_ref_id" : "4a4bcc70-33ed-11ec-aac1-dd97bcc28a8a",
"ref_id" : "c2a40e80-33ed-11ec-aac1-dd97bcc28a8a",
"__v" : 0
}
7 trong đó tham số /* 1 */
{
"_id" : ObjectId["6173e6577fc8622cbc56a10c"],
"label" : "Food",
"user_ref_id" : "457935c0-33ed-11ec-aac1-dd97bcc28a8a",
"ref_id" : "7a27b0d0-33ed-11ec-aac1-dd97bcc28a8a",
"__v" : 0
}
/* 2 */
{
"_id" : ObjectId["6173e6677fc8622cbc56a10e"],
"label" : "Entertainment",
"user_ref_id" : "457935c0-33ed-11ec-aac1-dd97bcc28a8a",
"ref_id" : "84021f00-33ed-11ec-aac1-dd97bcc28a8a",
"__v" : 0
}
/* 3 */
{
"_id" : ObjectId["6173e69d7fc8622cbc56a112"],
"label" : "Transportation",
"user_ref_id" : "4a4bcc70-33ed-11ec-aac1-dd97bcc28a8a",
"ref_id" : "a3e28580-33ed-11ec-aac1-dd97bcc28a8a",
"__v" : 0
}
/* 4 */
{
"_id" : ObjectId["6173e6d07fc8622cbc56a114"],
"label" : "Monthly Installment",
"user_ref_id" : "4a4bcc70-33ed-11ec-aac1-dd97bcc28a8a",
"ref_id" : "c2a40e80-33ed-11ec-aac1-dd97bcc28a8a",
"__v" : 0
}
8 là /* 1 */
{
"_id" : ObjectId["6173e6577fc8622cbc56a10c"],
"label" : "Food",
"user_ref_id" : "457935c0-33ed-11ec-aac1-dd97bcc28a8a",
"ref_id" : "7a27b0d0-33ed-11ec-aac1-dd97bcc28a8a",
"__v" : 0
}
/* 2 */
{
"_id" : ObjectId["6173e6677fc8622cbc56a10e"],
"label" : "Entertainment",
"user_ref_id" : "457935c0-33ed-11ec-aac1-dd97bcc28a8a",
"ref_id" : "84021f00-33ed-11ec-aac1-dd97bcc28a8a",
"__v" : 0
}
/* 3 */
{
"_id" : ObjectId["6173e69d7fc8622cbc56a112"],
"label" : "Transportation",
"user_ref_id" : "4a4bcc70-33ed-11ec-aac1-dd97bcc28a8a",
"ref_id" : "a3e28580-33ed-11ec-aac1-dd97bcc28a8a",
"__v" : 0
}
/* 4 */
{
"_id" : ObjectId["6173e6d07fc8622cbc56a114"],
"label" : "Monthly Installment",
"user_ref_id" : "4a4bcc70-33ed-11ec-aac1-dd97bcc28a8a",
"ref_id" : "c2a40e80-33ed-11ec-aac1-dd97bcc28a8a",
"__v" : 0
}
9 của Người dùng