Làm cách nào để tham gia nhiều bộ sưu tập trong nút mongodb bằng cách sử dụng tra cứu?

Để 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

Làm cách nào để tham gia nhiều bộ sưu tập trong nút mongodb bằng cách sử dụng tra cứu?

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
}
2

Tiế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
}
2


Tổ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

Làm cách nào để truy xuất dữ liệu từ nhiều bộ sưu tập trong nút MongoDB js?

Sau khi có mô hình, chúng ta có thể sử dụng phương thức find() trên mô hình của một bộ sưu tập cụ thể để lấy tài liệu của bộ sưu tập .

Tôi có thể sử dụng nhiều bộ sưu tập bên trong cơ sở dữ liệu trong MongoDB không?

Bạn có thể cập nhật tài liệu trong hai bộ sưu tập . Và thao tác có thể được thực hiện nguyên tử bằng Giao dịch MongoDB. Tuy nhiên, thao tác cập nhật trên mỗi bộ sưu tập sẽ riêng biệt - không thể thực hiện dưới dạng “truy vấn đơn lẻ”.

Chúng tôi có thể tham gia các bộ sưu tập trong MongoDB không?

Tham gia Bộ sưu tập . Giai đoạn tra cứu $ cho phép bạn chỉ định bộ sưu tập nào bạn muốn kết hợp với bộ sưu tập hiện tại và trường nào sẽ khớp. you can perform a left outer join by using the $lookup stage. The $lookup stage lets you specify which collection you want to join with the current collection, and which fields that should match.

Tra cứu trong tập hợp cho MongoDB là gì?

$lookup thực hiện so khớp bình đẳng trên localField với ForeignField từ các tài liệu của bộ sưu tập from . Nếu một tài liệu đầu vào không chứa localField , thì $lookup coi trường đó có giá trị null cho các mục đích phù hợp.