Hướng dẫn can you create relationships in mongodb? - bạn có thể tạo mối quan hệ trong mongodb không?
Tài liệu về nhà → Hướng dẫn sử dụng MongoDB → MongoDB Manual Show
Để 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ệ. Trong MongoDB, bạn có thể tạo mối quan hệ bằng một trong hai phương pháp sau:
Phương pháp bạn sử dụng sẽ phụ thuộc vào dữ liệu và cách bạn dự định truy vấn dữ liệu đó. Mối quan hệ nhúngVới MongoDB, bạn có thể nhúng tài liệu trong các tài liệu. Do đó, một tài liệu duy nhất có thể chứa các mối quan hệ của riêng mình. Trên thực tế, chúng tôi đã tạo một mối quan hệ bằng phương pháp này khi chúng tôi lần đầu tiên tạo một tài liệu. Mối quan hệ một-mộtMột mối quan hệ một-một là nơi mà tài liệu cha mẹ có một đứa con và đứa trẻ có một cha mẹ. Ví dụ, một quy tắc kinh doanh có thể nói rằng một nghệ sĩ chỉ có thể có một địa chỉ và địa chỉ chỉ có thể thuộc về một nghệ sĩ. Mã sau đây tạo ra một mối quan hệ một-một, được nhúng trong tài liệu. Result: WriteResult({ "nInserted" : 1 }) Mối quan hệ một-nhiềuMối quan hệ một-nhiều là nơi tài liệu cha mẹ có thể có nhiều tài liệu con, nhưng các tài liệu con chỉ có thể có một tài liệu chính. Vì vậy, một quy tắc kinh doanh khác có thể nói rằng một nghệ sĩ có thể có nhiều album, nhưng một album chỉ có thể thuộc về một nghệ sĩ. Chạy mã sau sẽ tạo mối quan hệ một-nhiều: Result: WriteResult({ "nInserted" : 1 }) Tài liệu được tham chiếu các mối quan hệBạn có thể sử dụng một tham chiếu tài liệu để tạo mối quan hệ. Thay vì nhúng tài liệu trẻ vào tài liệu cha (như chúng tôi đã làm ở trên), bạn tách tài liệu trẻ vào tài liệu độc lập của chính nó. Vì vậy, chúng tôi có thể làm điều này: Tài liệu phụ huynhTài liệu trẻ emChúng tôi sẽ chèn 3 tài liệu con - một cho mỗi thành viên ban nhạc: Truy vấn mối quan hệSau khi chèn hai tài liệu trên, bạn có thể sử dụng Điều này, kết hợp với phương pháp Result: { "_id" : 4, "artistname" : "Rush", "band_members" : [ { "_id" : 9, "name" : "Geddy Lee", "instrument" : [ "Bass", "Vocals", "Keyboards" ], "artist_id" : 4 }, { "_id" : 10, "name" : "Alex Lifeson", "instrument" : [ "Guitar", "Backing Vocals" ], "artist_id" : 4 }, { "_id" : 11, "name" : "Neil Peart", "instrument" : "Drums", "artist_id" : 4 } ] } Bạn có thể thấy rằng hai lĩnh vực đầu tiên là từ bộ sưu tập nghệ sĩ, và phần còn lại là từ bộ sưu tập nhạc sĩ. Vì vậy, nếu bạn chỉ truy vấn bộ sưu tập nghệ sĩ của chính nó: Bạn chỉ nhận được cái này: { "_id" : 4, "artistname" : "Rush" } Không có dữ liệu liên quan được trả về. Khi nào nên sử dụng các tài liệu nhúng so với các tài liệu được tham chiếuCả hai phương pháp tạo mối quan hệ đều có ưu và nhược điểm của họ. Có những lúc bạn có thể sử dụng các tài liệu nhúng và những lần khác bạn sẽ sử dụng các tài liệu được tham chiếu. Khi nào nên sử dụng các mối quan hệ nhúngMột trong những lợi ích chính của việc sử dụng phương pháp quan hệ nhúng là hiệu suất. Khi mối quan hệ được nhúng trong tài liệu, các truy vấn sẽ chạy nhanh hơn so với khi chúng được trải ra trên nhiều tài liệu. MongoDB chỉ cần trả về một tài liệu, thay vì tham gia nhiều tài liệu để truy xuất các mối quan hệ. Điều này có thể cung cấp một sự tăng cường hiệu suất lớn - đặc biệt là khi làm việc với nhiều dữ liệu. Các mối quan hệ nhúng cũng làm cho các truy vấn dễ viết hơn. Thay vì viết các truy vấn phức tạp tham gia nhiều tài liệu thông qua số nhận dạng duy nhất của họ, bạn có thể trả về tất cả các dữ liệu liên quan trong một truy vấn duy nhất. Một cân nhắc khác để ghi nhớ là, MongoDB chỉ có thể đảm bảo tính nguyên tử ở cấp độ tài liệu. Cập nhật tài liệu cho một tài liệu duy nhất luôn là nguyên tử, nhưng không phải cho nhiều tài liệu. Khi nhiều người dùng đang truy cập dữ liệu, luôn có cơ hội hai hoặc nhiều người dùng sẽ cố gắng cập nhật cùng một tài liệu với dữ liệu khác nhau. Trong trường hợp này, MongoDB sẽ đảm bảo rằng không có xung đột xảy ra và chỉ có một bộ dữ liệu được cập nhật tại một thời điểm. MongoDB không thể đảm bảo điều này trên nhiều tài liệu. Vì vậy, nói chung, các mối quan hệ nhúng có thể được sử dụng trong hầu hết các trường hợp, miễn là tài liệu vẫn còn trong giới hạn kích thước (16 megabyte tại thời điểm viết) và/hoặc giới hạn làm tổ của nó (sâu 100 cấp tại thời điểm viết). Tuy nhiên, các mối quan hệ nhúng không phù hợp với tất cả các trường hợp. Có thể có những tình huống có ý nghĩa hơn khi tạo ra một mối quan hệ được tham chiếu tài liệu. Khi nào nên sử dụng các mối quan hệ được tham chiếuĐối với dữ liệu cần được lặp lại trên nhiều tài liệu, có thể hữu ích khi có chúng trong tài liệu riêng của chúng. Điều này có thể làm giảm lỗi và giúp giữ cho dữ liệu nhất quán (trong khi lưu ý rằng các bản cập nhật nhiều tài liệu không phải là nguyên tử). Sử dụng ví dụ trên, một nhạc sĩ có thể là thành viên (hoặc thành viên cũ) của nhiều ban nhạc. Một số cũng có thể sản xuất album cho các nghệ sĩ khác, dạy học sinh, điều hành phòng khám, v.v. Ngoài ra, rất nhiều dữ liệu có thể được lưu trữ chống lại mỗi nhạc sĩ. Vì vậy, có một tài liệu riêng cho mỗi nhạc sĩ có ý nghĩa trong trường hợp này. Ngoài ra, nếu bạn nghĩ rằng các tài liệu nhúng của bạn có thể vượt quá giới hạn kích thước tệp do MongoDB áp đặt, thì bạn sẽ cần lưu trữ một số dữ liệu trong các tài liệu riêng biệt. Bạn có thể làm cho các mối quan hệ trong MongoDB?Mối quan hệ MongoDB là đại diện cho cách nhiều tài liệu được kết nối hợp lý với nhau trong MongoDB.Các phương pháp nhúng và tham chiếu là hai cách để tạo ra các mối quan hệ như vậy.The Embedded and Referenced methods are two ways to create such relationships.
MongoDB có sử dụng cơ sở dữ liệu quan hệ không?MongoDB là một cơ sở dữ liệu tài liệu phi quan hệ cung cấp hỗ trợ cho lưu trữ giống JSON.Cơ sở dữ liệu MongoDB có mô hình dữ liệu linh hoạt cho phép bạn lưu trữ dữ liệu không có cấu trúc và nó cung cấp hỗ trợ lập chỉ mục đầy đủ và sao chép với các API phong phú và trực quan.non-relational document database that provides support for JSON-like storage. The MongoDB database has a flexible data model that enables you to store unstructured data, and it provides full indexing support, and replication with rich and intuitive APIs.
Làm thế nào bạn có thể thực hiện 1 đến nhiều mối quan hệ trong MongoDB?Trong MongoDB, các mối quan hệ một-một, một-nhiều và nhiều người có thể được thực hiện theo hai cách: sử dụng các tài liệu nhúng.Sử dụng tham chiếu của các tài liệu của một bộ sưu tập khác.Using embedded documents. Using the reference of documents of another collection. |