Hướng dẫn why there is no joins in mongodb? - tại sao không có tham gia trong mongodb?

MongoDB tham gia khác với cách tham gia hoạt động trên SQL. MongoDB là cơ sở dữ liệu NoQuery nguồn mở được sử dụng để lưu trữ khối lượng dữ liệu cao. Trong cơ sở dữ liệu truyền thống, chúng tôi sử dụng các bảng và hàng nhưng MongoDB sử dụng các bộ sưu tập và tài liệu. Tài liệu sử dụng các cặp giá trị khóa là đơn vị cơ bản trong MongoDB. Bộ sưu tập là một tập hợp các tài liệu và chức năng tương đương với các bảng trong cơ sở dữ liệu quan hệ. & NBSP;Documents use key-value pairs which is the basic unit in MongoDB. Collections are a set of documents and functions which is the equivalent of tables in Relational Databases. 

Blog này nói về cách sử dụng MongoDB tham gia, các loại lệnh chính và tra cứu chính.

Mục lục

  • MongoDB là gì?
    • Các tính năng chính của MongoDB
  • Các thành phần chính của kiến ​​trúc MongoDB
  • Tập hợp tra cứu mongoDB là gì?
    • Sự định nghĩa
    • MongoDB tham gia cú pháp
      • Phù hợp với bình đẳng với điều kiện nối duy nhất
      • MongoDB tham gia: Điều kiện và nhóm phụ trên các bộ sưu tập tham gia
      • MongoDB tham gia: Các nhóm phụ tương quan bằng cách sử dụng cú pháp ngắn gọn
    • MongoDB tham gia các hạn chế
    • MongoDB tham gia các ví dụ
  • Sự kết luận

MongoDB là gì?

Các tính năng chính của MongoDB

Các thành phần chính của kiến ​​trúc MongoDB

Tập hợp tra cứu mongoDB là gì?

Các tính năng chính của MongoDB

  • Các thành phần chính của kiến ​​trúc MongoDB
  • Tập hợp tra cứu mongoDB là gì?
  • Sự định nghĩa
  • MongoDB tham gia cú pháp
  • Phù hợp với bình đẳng với điều kiện nối duy nhất

Các thành phần chính của kiến ​​trúc MongoDB

Các tính năng chính của MongoDB
  • Các thành phần chính của kiến ​​trúc MongoDB: This is like documents’ primary key. It is a requirement for every document. It is unique for each document. If you create a table without an _id field then MongoDB will automatically create one.
  • Tập hợp tra cứu mongoDB là gì?: A collection is a group of documents. It is the equivalent of tables in any other Relational Database Management system like Oracle or MySQL. They exist within a single database and do not have a fixed structure as such.
  • Sự định nghĩa: It is a pointer to the result. We can iterate through the cursor to get results.
  • MongoDB tham gia cú pháp: It is a container for Collections. Each database gets its own set of files on the system. The MongoDB server can contain multiple databases.
  • Phù hợp với bình đẳng với điều kiện nối duy nhất: A record is called a Document. They contain field names and values.
  • MongoDB tham gia: Điều kiện và nhóm phụ trên các bộ sưu tập tham gia: JavaScript Object Notation. It is a readable format for expressing structured data.
  • MongoDB tham gia: Các nhóm phụ tương quan bằng cách sử dụng cú pháp ngắn gọn: It is a name-value pair. Every Document contains zero or more fields. They are similar to columns in RDBMS.

MongoDB tham gia các hạn chế:

MongoDB tham gia các ví dụ

Sự kết luậnincluding 40+ Free Data Sources] like MongoDB to a destination of your choice in real-time in an effortless manner. Hevo with its minimal learning curve can be set up in just a few minutes allowing the users to load data without having to compromise performance. Its strong integration with umpteenth sources provides users with the flexibility to bring in data of different kinds, in a smooth fashion without having to code a single line. 

Nguồn hình ảnh

MongoDB là một cơ sở dữ liệu NoQuery nguồn mở được sử dụng để lưu trữ khối lượng dữ liệu lớn và hoạt động với nó một cách hiệu quả. Nó được phân loại là NoQuery vì việc lưu trữ và truy xuất dữ liệu không ở dạng bảng và hàng. Nó ở dạng tài liệu và bộ sưu tập.

  • Cơ sở dữ liệu MongoDB ban đầu được phát hành vào tháng 2 năm 2009 và được quản lý bởi MongoDB.INC. Nó cũng hỗ trợ tất cả các ngôn ngữ phổ biến như C, C ++, C#, DotNet, Java, Node.js, Ruby, v.v. Có rất nhiều công ty sử dụng MongoDB như Facebook, Nokia, Google, v.v. để lưu trữ lượng dữ liệu lớn của họ. Mặc dù bạn có thể nghĩ rằng không thể thực hiện tham gia MongoDB vì đây là cơ sở dữ liệu phi quan hệ, có một vài cách để làm điều đó. Chúng được thảo luận chi tiết sau này trong blog. The Hevo platform can be set up in just a few minutes and requires minimal maintenance.
  • Mỗi cơ sở dữ liệu đều chứa các bộ sưu tập có chứa tài liệu. Mỗi tài liệu khác với nội dung W.R.T khác và số trường. Hevo provides real-time data migration, so you can have analysis-ready data always.
  • Cấu trúc tài liệu dựa trên cách các nhà phát triển xây dựng các lớp và đối tượng của họ. Các lớp giống như các cặp giá trị khóa thay vì các hàng và cột.: Hevo provides preload transformations through Python code. It also allows you to run transformation code for each event in the Data Pipelines you set up. You need to edit the event object’s properties received in the transform method as a parameter to carry out the transformation. Hevo also offers drag and drop transformations like Date and Control Functions, JSON, and Event Manipulation to name a few. These can be configured and tested before putting them to use.
  • Đầu nối: HEVO hỗ trợ hơn 100 tích hợp cho các nền tảng, tệp, cơ sở dữ liệu, phân tích và công cụ BI. Nó hỗ trợ các điểm đến khác nhau bao gồm Amazon Redshift, Firebolt, kho dữ liệu Bông tuyết; Databricks, Amazon S3 Data Lakes; MongoDB, MySQL, SQL Server, Tokudb, DynamoDB, PostgreSQL cơ sở dữ liệu để đặt tên cho một số. & Nbsp; & nbsp;: Hevo supports 100+ Integrations to SaaS platforms, files, databases, analytics, and BI tools. It supports various destinations including Amazon Redshift, Firebolt, Snowflake Data Warehouses; Databricks, Amazon S3 Data Lakes; MongoDB, MySQL, SQL Server, TokuDB, DynamoDB, PostgreSQL databases to name a few.  
  • Truyền dữ liệu hoàn chỉnh và chính xác 100%: & NBSP; Cơ sở hạ tầng mạnh mẽ của Hevo, đảm bảo truyền dữ liệu đáng tin cậy với mất dữ liệu bằng không. Hevo’s robust infrastructure ensures reliable data transfer with zero data loss.
  • Cơ sở hạ tầng có thể mở rộng: & NBSP; Hevo có tích hợp được xây dựng cho hơn 100 nguồn, có thể giúp bạn mở rộng cơ sở hạ tầng dữ liệu của mình theo yêu cầu. Hevo has in-built integrations for 100+ sources, that can help you scale your data infrastructure as required.
  • Hỗ trợ trực tiếp 24/7: & NBSP; Nhóm HEVO có sẵn quanh đồng hồ để mở rộng hỗ trợ đặc biệt cho bạn thông qua trò chuyện, email và các cuộc gọi hỗ trợ. The Hevo team is available round the clock to extend exceptional support to you through chat, email, and support calls.
  • Quản lý lược đồ: & NBSP; Hevo lấy đi nhiệm vụ tẻ nhạt của quản lý lược đồ và tự động phát hiện lược đồ của dữ liệu đến và ánh xạ nó đến lược đồ đích. Hevo takes away the tedious task of schema management & automatically detects the schema of incoming data and maps it to the destination schema.
  • Giám sát trực tiếp: & NBSP; HEVO cho phép bạn theo dõi luồng dữ liệu để bạn có thể kiểm tra nơi dữ liệu của bạn tại một thời điểm cụ thể. Hevo allows you to monitor the data flow so you can check where your data is at a particular point in time.

Bắt đầu với Hevo miễn phí

Tập hợp tra cứu mongoDB là gì?

Một trong những khác biệt chính giữa cơ sở dữ liệu SQL và NoQuery là khi nói đến mệnh đề tham gia. Trong cơ sở dữ liệu quan hệ, mệnh đề tham gia cho phép bạn kết hợp hai hoặc nhiều hàng từ các bảng bằng trường chung. Nhưng trong MongoDB, cơ sở dữ liệu được thiết kế để lưu trữ dữ liệu bị phân tách. May mắn thay, MongoDB tham gia có thể được thực hiện trong MongoDB 3.2 khi nó giới thiệu một hoạt động tra cứu mới có thể thực hiện các hoạt động tham gia trên các bộ sưu tập.

Sự định nghĩa

Kết hợp MongoDB được thực hiện bằng cách tra cứu. Nó thực hiện tham gia bên ngoài bên trái đến hai hoặc nhiều bộ sưu tập. Nhưng tra cứu chỉ được phép trong các hoạt động tổng hợp. Điều này giống như một đường ống thực hiện các hoạt động truy vấn, bộ lọc và nhóm. Đầu ra của một được sử dụng làm đầu vào cho hoạt động tiếp theo.Left Outer Join to two or more Collections. But Lookup is only permitted in Aggregate operations. This is like a pipeline that performs query, filter and group operations. The output of one is used as input for the next operation.

MongoDB tham gia cú pháp

Phần sau đây nói về cú pháp của các mệnh đề có điều kiện khác nhau để tham gia MongoDB:

  • MongoDB tham gia: Phù hợp với bình đẳng với một điều kiện tham gia duy nhất
  • MongoDB tham gia: Điều kiện và các nhóm phụ trong các điều kiện được tham gia
  • MongoDB tham gia: Các nhóm phụ tương quan bằng cách sử dụng cú pháp ngắn gọn

MongoDB tham gia: Phù hợp với bình đẳng với một điều kiện tham gia duy nhất

MongoDB tham gia: Điều kiện và các nhóm phụ trong các điều kiện được tham gia

MongoDB tham gia: Các nhóm phụ tương quan bằng cách sử dụng cú pháp ngắn gọn

Điều khoản này thực hiện một kết hợp bình đẳng giữa các trường từ các tài liệu đầu vào và bộ sưu tập được tham gia. Cú pháp:

SELECT *, 
FROM collection
WHERE  IN [
   SELECT *
   FROM 
   WHERE  = 
];

Examples:

  • {
       $lookup:
         {
           from: ,
           localField: ,
           foreignField: ,
           as: 
         }
    }
  • Điều này sẽ tương ứng với mã SQL sau:

Bình đẳng duy nhất tham gia

Sử dụng Tra cứu trên một mảng

  • MongoDB tham gia: Điều kiện và nhóm phụ trên các bộ sưu tập tham gia
  • MongoDB 3.6 đã thêm hỗ trợ vào:
  • Thực hiện một đường ống trên một bộ sưu tập được tham gia.

Thực hiện nhiều bộ sưu tập tham gia.Equality Join, you can use this Lookup syntax:

{
   $lookup:
      {
         from: ,
         let: { : , …, :  },
         pipeline: [  ],
         as: 
      }
}

Các truy vấn tương quan và không tương quan.

SELECT *, 
FROM collection
WHERE  IN [
   SELECT 
   FROM 
   WHERE 
];

Examples:

  • Để thực hiện các hoạt động tham gia khác ngoài tham gia bình đẳng, bạn có thể sử dụng cú pháp tra cứu này:

MongoDB tham gia: Các nhóm phụ tương quan bằng cách sử dụng cú pháp ngắn gọn

Điều khoản này thực hiện một kết hợp bình đẳng giữa các trường từ các tài liệu đầu vào và bộ sưu tập được tham gia. Cú pháp:

{
   $lookup:
      {
         from: ,
         localField: ,
         let: { : , …, :  },
         pipeline: [  ],
         as: 
      }
}

{
   $lookup:
     {
       from: ,
       localField: ,
       foreignField: ,
       as: 
     }
}

SELECT *, 
FROM localCollection
WHERE  IN [
   SELECT 
   FROM 
   WHERE  = 
   AND 
];

Điều này sẽ tương ứng với mã SQL sau:

  • Bình đẳng duy nhất tham gia

Sử dụng Tra cứu trên một mảng

MongoDB tham gia: Điều kiện và nhóm phụ trên các bộ sưu tập tham gia

  • MongoDB 3.6 đã thêm hỗ trợ vào:
  • Thực hiện một đường ống trên một bộ sưu tập được tham gia.From Collection cannot be sharded in the $lookup stage but the Collection you run $aggregate on can be sharded.

Thực hiện nhiều bộ sưu tập tham gia.

Các truy vấn tương quan và không tương quan.

  • {
       $lookup:
         {
           from: ,
           localField: ,
           foreignField: ,
           as: 
         }
    }
  • Điều này sẽ tương ứng với mã SQL sau:
  • Bình đẳng duy nhất tham gia
  • Sử dụng Tra cứu trên một mảng

{
   $lookup:
     {
       from: ,
       localField: ,
       foreignField: ,
       as: 
     }
}

Điều này sẽ tương ứng với mã SQL sau:

db.orders.insertMany[ [
   { "_id" : 1, "item" : "almonds", "price" : 12, "quantity" : 2 },
   { "_id" : 2, "item" : "pecans", "price" : 20, "quantity" : 1 },
   { "_id" : 3  }
] ]
db.inventory.insertMany[ [
   { "_id" : 1, "sku" : "almonds", "description": "product 1", "instock" : 120 },
   { "_id" : 2, "sku" : "bread", "description": "product 2", "instock" : 80 },
   { "_id" : 3, "sku" : "cashews", "description": "product 3", "instock" : 60 },
   { "_id" : 4, "sku" : "pecans", "description": "product 4", "instock" : 70 },
   { "_id" : 5, "sku": null, "description": "Incomplete" },
   { "_id" : 6 }
] ]

Bình đẳng duy nhất tham gia

db.orders.aggregate[ [
   {
     $lookup:
       {
         from: "inventory",
         localField: "item",
         foreignField: "sku",
         as: "inventory_docs"
       }
  }
] ]

Sử dụng Tra cứu trên một mảng

{
   $lookup:
     {
       from: ,
       localField: ,
       foreignField: ,
       as: 
     }
}
0

Điều này sẽ tương ứng với mã SQL sau:

Bình đẳng duy nhất tham gia, there are two Collections “classes” and “members” with the following Documents:

{
   $lookup:
     {
       from: ,
       localField: ,
       foreignField: ,
       as: 
     }
}
1
{
   $lookup:
     {
       from: ,
       localField: ,
       foreignField: ,
       as: 
     }
}
2

Sử dụng Tra cứu trên một mảng

{
   $lookup:
     {
       from: ,
       localField: ,
       foreignField: ,
       as: 
     }
}
3

MongoDB tham gia: Điều kiện và nhóm phụ trên các bộ sưu tập tham gia

{
   $lookup:
     {
       from: ,
       localField: ,
       foreignField: ,
       as: 
     }
}
4

Để thực hiện các hoạt động tham gia khác ngoài tham gia bình đẳng, bạn có thể sử dụng cú pháp tra cứu này:

Điều này tương đương với mã SQL bên dưới:

{
   $lookup:
     {
       from: ,
       localField: ,
       foreignField: ,
       as: 
     }
}
5
{
   $lookup:
     {
       from: ,
       localField: ,
       foreignField: ,
       as: 
     }
}
6

Nhiều lần tham gia và tương quan con

{
   $lookup:
     {
       from: ,
       localField: ,
       foreignField: ,
       as: 
     }
}
7

Đầu ra cho đoạn mã đã nói ở trên sẽ là:

{
   $lookup:
     {
       from: ,
       localField: ,
       foreignField: ,
       as: 
     }
}
8

Subquery tương quan ngắn gọn

Tạo các bộ sưu tập Nhà hàng của các nhà hàng trực tuyến và các đơn đặt hàng trực tuyến với các tài liệu sau:

{
   $lookup:
     {
       from: ,
       localField: ,
       foreignField: ,
       as: 
     }
}
9
SELECT *, 
FROM collection
WHERE  IN [
   SELECT *
   FROM 
   WHERE  = 
];
0

Tham gia hai bộ sưu tập trên theo đơn đặt hàng.Restaurant_Name và nhà hàng.

SELECT *, 
FROM collection
WHERE  IN [
   SELECT *
   FROM 
   WHERE  = 
];
1

Đầu ra sẽ là:

SELECT *, 
FROM collection
WHERE  IN [
   SELECT *
   FROM 
   WHERE  = 
];
2

Sự kết luận

Blog này thảo luận về các tính năng của MongoDB tham gia và các loại mà chúng ta có thể thực hiện trên dữ liệu. Tra cứu mongoDB $ rất hữu ích và mạnh mẽ nhưng nó đòi hỏi các truy vấn tổng hợp phức tạp.

Trích xuất dữ liệu phức tạp từ một tập hợp các nguồn dữ liệu đa dạng để thực hiện một phân tích sâu sắc có thể là một thách thức, và đây là nơi & nbsp; hevo & nbsp; tiết kiệm trong ngày! Hevo & nbsp; cung cấp một cách nhanh hơn để di chuyển dữ liệu từ cơ sở dữ liệu hoặc các ứng dụng SaaS như & nbsp; MongoDB & NBSP; vào kho dữ liệu của bạn để được hiển thị trong một công cụ BI. Hevo hoàn toàn tự động và do đó không yêu cầu bạn mã hóa.Hevo saves the day! Hevo offers a faster way to move data from Databases or SaaS applications like MongoDB into your Data Warehouse to be visualized in a BI tool. Hevo is fully automated and hence does not require you to code.

Bắt đầu với Hevo miễn phí

Nếu bạn đang sử dụng MongoDB làm nguồn dữ liệu và tìm kiếm một sự thay thế không giả mạo để tích hợp dữ liệu thủ công, thì Hevo có thể dễ dàng tự động hóa điều này cho bạn. HEVO, với sự tích hợp mạnh mẽ với hơn 100 nguồn & công cụ BI [bao gồm hơn 40 nguồn miễn phí], cho phép bạn không chỉ xuất và tải dữ liệu mà còn biến đổi và làm phong phú dữ liệu của bạn và làm cho nó sẵn sàng phân tích trong JIFFY. MongoDB as a source of data and searching for a no-fuss alternative to Manual Data Integration, then Hevo can effortlessly automate this for you. Hevo, with its strong integration with 100+ sources & BI tools [Including 40+ Free Sources], allows you to not only export & load data but also transform & enrich your data & make it analysis-ready in a jiffy.

Bạn muốn đưa Hevo đi xe? Đăng ký dùng thử miễn phí 14 ngày và đơn giản hóa quy trình tích hợp dữ liệu của bạn. Hãy kiểm tra các chi tiết giá để hiểu kế hoạch nào đáp ứng tất cả các nhu cầu kinh doanh của bạn.14-day free trial and simplify your Data Integration process. Do check out the pricing details to understand which plan fulfills all your business needs.

Có phải tham gia trong MongoDB không?

May mắn thay, MongoDB tham gia có thể được thực hiện trong MongoDB 3.2 khi nó giới thiệu một hoạt động tra cứu mới có thể thực hiện các hoạt động tham gia trên các bộ sưu tập.MongoDB Joins can be performed in MongoDB 3.2 as it introduces a new Lookup operation that can perform Join operations on Collections.

Có thể tham gia trong NoQuery không?

Một mệnh đề tham gia được sử dụng để kết hợp các hàng từ hai hoặc nhiều bảng, dựa trên một cột liên quan giữa chúng.Các kết nối chủ yếu được sử dụng trong cơ sở dữ liệu Oracle NoQuery khi người dùng đang cố gắng trích xuất dữ liệu từ các bảng có mối quan hệ phân cấp giữa chúng.Joins are predominantly used in an Oracle NoSQL Database when a user is trying to extract data from tables that have a hierarchical relationship between them.

Có tham gia chậm trong MongoDB không?

Kết luận là MongoDB tham gia rất giòn [khi mọi thứ thay đổi, các chương trình ứng dụng phải được mã hóa rộng rãi] và thường mang lại hiệu suất rất kém, so với postgres.MongoDB joins are very brittle [when things change, application programs must be extensively recoded], and often MongoDB offers very poor performance, relative to Postgres.

Làm thế nào để bạn tạo mối quan hệ giữa hai bảng trong MongoDB?

Để tạo mối quan hệ trong MongoDB, hoặc nhúng một tài liệu BSON trong một tài liệu khác hoặc tham khảo nó từ một tài liệu khác.Cơ sở dữ liệu MongoDB hoạt động khác nhau với cơ sở dữ liệu quan hệ.Điều này cũng đúng với các mối quan hệ.embed a BSON document within another, or reference it from another. MongoDB databases work differently to relational databases. This is also true of relationships.

Bài Viết Liên Quan

Chủ Đề