Hướng dẫn how do i reference a collection in mongodb? - làm cách nào để tham chiếu một bộ sưu tập trong mongodb?

Tài liệu về nhà → Hướng dẫn sử dụng MongoDBMongoDB Manual

Đối với nhiều trường hợp sử dụng trong MongoDB, mô hình dữ liệu được chuẩn hóa trong đó dữ liệu liên quan được lưu trữ trong một tài liệu là tối ưu. Tuy nhiên, trong một số trường hợp, việc lưu trữ thông tin liên quan trong các tài liệu riêng biệt, thường là trong các bộ sưu tập hoặc cơ sở dữ liệu khác nhau.

Quan trọng

Bạn có thể sử dụng giai đoạn đường ống $lookup để thực hiện tham gia bên ngoài bên trái vào một bộ sưu tập không có vỏ trong cùng một cơ sở dữ liệu.

Bạn cũng có thể sử dụng giai đoạn đường ống $graphLookup để tham gia một bộ sưu tập không có vỏ để thực hiện tìm kiếm đệ quy.

Trang này phác thảo các quy trình thay thế có trước các giai đoạn đường ống $lookup$graphLookup.

Các ứng dụng MongoDB sử dụng một trong hai phương thức để liên kết các tài liệu:

  • Tài liệu tham khảo thủ công Lưu trường _id của một tài liệu trong một tài liệu khác làm tài liệu tham khảo. Ứng dụng của bạn chạy truy vấn thứ hai để trả về dữ liệu liên quan. Những tài liệu tham khảo này là đơn giản và đủ cho hầu hết các trường hợp sử dụng. save the _id field of one document in another document as a reference. Your application runs a second query to return the related data. These references are simple and sufficient for most use cases.

  • DBREF là các tài liệu tham khảo từ tài liệu này sang tài liệu khác bằng cách sử dụng giá trị của trường tài liệu đầu tiên, tên thu thập và tùy chọn tên cơ sở dữ liệu của nó, cũng như bất kỳ trường nào khác. DBREFS cho phép bạn dễ dàng tham khảo các tài liệu được lưu trữ trong nhiều bộ sưu tập hoặc cơ sở dữ liệu. are references from one document to another using the value of the first document's _id field, collection name, and, optionally, its database name, as well as any other fields. DBRefs allow you to more easily reference documents stored in multiple collections or databases.

Để giải quyết DBREFS, ứng dụng của bạn phải thực hiện các truy vấn bổ sung để trả về các tài liệu được tham chiếu. Một số trình điều khiển MongoDB cung cấp các phương pháp trợ giúp để cho phép DBREF được giải quyết thành các tài liệu, nhưng nó không tự động xảy ra.MongoDB drivers provide helper methods to enable DBRefs to be resolved into documents, but it doesn't happen automatically.

DBREF cung cấp một định dạng và loại phổ biến để thể hiện mối quan hệ giữa các tài liệu. Định dạng DBREF cũng cung cấp các ngữ nghĩa phổ biến để biểu diễn các liên kết giữa các tài liệu nếu cơ sở dữ liệu của bạn phải tương tác với nhiều khung và công cụ.

Trừ khi bạn có một lý do thuyết phục để sử dụng DBREF, hãy sử dụng các tài liệu tham khảo thủ công thay thế.

Một tài liệu tham khảo thủ công là thực tiễn bao gồm một trường ____ của một tài liệu trong một tài liệu khác. Ứng dụng sau đó có thể phát hành truy vấn thứ hai để giải quyết các trường được tham chiếu khi cần thiết.

Xem xét hoạt động sau để chèn hai tài liệu, sử dụng trường _id của tài liệu đầu tiên làm tài liệu tham khảo trong tài liệu thứ hai:

original_id = ObjectId()
db.places.insertOne({
"_id": original_id,
"name": "Broadway Center",
"url": "bc.example.net"
})
db.people.insertOne({
"name": "Erin",
"places_id": original_id,
"url": "bc.example.net/Erin"
})

Sau đó, khi một truy vấn trả về tài liệu từ bộ sưu tập

{ "$ref" : , "$id" : , "$db" : }

1, nếu cần, hãy thực hiện truy vấn thứ hai cho tài liệu được tham chiếu bởi trường

{ "$ref" : , "$id" : , "$db" : }

2 trong bộ sưu tập

{ "$ref" : , "$id" : , "$db" : }

3.

Đối với gần như mọi trường hợp bạn muốn lưu trữ mối quan hệ giữa hai tài liệu, hãy sử dụng các tài liệu tham khảo thủ công. Các tài liệu tham khảo rất đơn giản để tạo và ứng dụng của bạn có thể giải quyết các tài liệu tham khảo khi cần thiết.manual references. The references are simple to create and your application can resolve references as needed.

Hạn chế duy nhất của liên kết thủ công là các tài liệu tham khảo này không truyền tải cơ sở dữ liệu và tên thu thập. Nếu bạn có tài liệu trong một bộ sưu tập duy nhất liên quan đến các tài liệu trong nhiều bộ sưu tập, bạn có thể cần xem xét sử dụng DBREFS.

DBREF là một quy ước để đại diện cho một tài liệu, thay vì một loại tham chiếu cụ thể. Chúng bao gồm tên của bộ sưu tập và trong một số trường hợp, tên cơ sở dữ liệu, ngoài giá trị từ trường _id.

Tùy chọn, DBREFS có thể bao gồm bất kỳ số lượng các trường khác. Tên trường bổ sung phải tuân theo bất kỳ quy tắc nào cho tên trường áp đặt bởi phiên bản máy chủ.

DBREF có các trường sau:

{ "$ref" : , "$id" : , "$db" : }

5

Trường

{ "$ref" : , "$id" : , "$db" : }

5 giữ tên của bộ sưu tập nơi tài liệu được tham chiếu cư trú.

{ "$ref" : , "$id" : , "$db" : }

7

Trường

{ "$ref" : , "$id" : , "$db" : }

7 chứa giá trị của trường _id trong tài liệu được tham chiếu.

{
"_id" : ObjectId("5126bbf64aed4daf9e2ab771"),
// .. application fields
"creator" : {
"$ref" : "creators",
"$id" : ObjectId("5126bc054aed4daf9e2ab772"),
"$db" : "users",
"extraField" : "anything"
}
}
0

Optional.

Chứa tên của cơ sở dữ liệu nơi tài liệu được tham chiếu cư trú.

Thí dụ

Tài liệu DBREF giống với tài liệu sau:

{ "$ref" : , "$id" : , "$db" : }

Hãy xem xét một tài liệu từ một bộ sưu tập lưu trữ DBREF trong trường

{
"_id" : ObjectId("5126bbf64aed4daf9e2ab771"),
// .. application fields
"creator" : {
"$ref" : "creators",
"$id" : ObjectId("5126bc054aed4daf9e2ab772"),
"$db" : "users",
"extraField" : "anything"
}
}
1:

{
"_id" : ObjectId("5126bbf64aed4daf9e2ab771"),
// .. application fields
"creator" : {
"$ref" : "creators",
"$id" : ObjectId("5126bc054aed4daf9e2ab772"),
"$db" : "users",
"extraField" : "anything"
}
}

DBREF trong ví dụ này chỉ ra một tài liệu trong bộ sưu tập

{
"_id" : ObjectId("5126bbf64aed4daf9e2ab771"),
// .. application fields
"creator" : {
"$ref" : "creators",
"$id" : ObjectId("5126bc054aed4daf9e2ab772"),
"$db" : "users",
"extraField" : "anything"
}
}
2 của cơ sở dữ liệu
{
"_id" : ObjectId("5126bbf64aed4daf9e2ab771"),
// .. application fields
"creator" : {
"$ref" : "creators",
"$id" : ObjectId("5126bc054aed4daf9e2ab772"),
"$db" : "users",
"extraField" : "anything"
}
}
3 có
{
"_id" : ObjectId("5126bbf64aed4daf9e2ab771"),
// .. application fields
"creator" : {
"$ref" : "creators",
"$id" : ObjectId("5126bc054aed4daf9e2ab772"),
"$db" : "users",
"extraField" : "anything"
}
}
4 trong trường _id của nó. Nó cũng chứa một trường tùy chọn.

Ghi chú

Thứ tự của các trường trong các vấn đề DBREF và bạn phải sử dụng trình tự trên khi sử dụng DBREF.

Người lái xe

Hỗ trợ DBREF

Ghi chú

C

Không được hỗ trợ

Bạn có thể đi qua các tài liệu tham khảo bằng tay.

C++

Không được hỗ trợ

Bạn có thể đi qua các tài liệu tham khảo bằng tay.

C#

Được hỗ trợ

Vui lòng xem trang trình điều khiển C# để biết thêm thông tin.C# driver page for more information.

Đi

Không được hỗ trợ

Bạn có thể đi qua các tài liệu tham khảo bằng tay.

Được hỗ trợ

Không được hỗ trợ

Bạn có thể đi qua các tài liệu tham khảo bằng tay.

Được hỗ trợ

Được hỗ trợ

Vui lòng xem trang trình điều khiển C# để biết thêm thông tin.Java driver page for more information.

Node.js

Được hỗ trợ

Vui lòng xem trang trình điều khiển C# để biết thêm thông tin.Node.js driver page for more information.

Đi

Được hỗ trợ

Vui lòng xem trang trình điều khiển C# để biết thêm thông tin.Perl driver page for more information.

Đi

Không được hỗ trợ

Bạn có thể đi qua các tài liệu tham khảo bằng tay.

Được hỗ trợ

Được hỗ trợ

Vui lòng xem trang trình điều khiển C# để biết thêm thông tin.PyMongo driver page for more information.

Đi

Được hỗ trợ

Vui lòng xem trang trình điều khiển C# để biết thêm thông tin.Ruby driver page for more information.

Scala

Không được hỗ trợ

Bạn có thể đi qua các tài liệu tham khảo bằng tay.

Trong hầu hết các trường hợp, bạn nên sử dụng phương thức tham chiếu thủ công để kết nối hai hoặc nhiều tài liệu liên quan. Tuy nhiên, nếu bạn cần tham khảo các tài liệu từ nhiều bộ sưu tập, hãy xem xét sử dụng DBREFS.manual reference method for connecting two or more related documents. However, if you need to reference documents from multiple collections, consider using DBRefs.

Làm cách nào để tham khảo một bộ sưu tập trong MongoDB?

Important..
Tài liệu tham khảo thủ công Lưu trường _ID của một tài liệu trong tài liệu khác làm tài liệu tham khảo. ....
DBREF là các tài liệu tham khảo từ tài liệu này sang tài liệu khác bằng cách sử dụng giá trị của trường _id, tên thu thập tài liệu đầu tiên và, tùy chọn, tên cơ sở dữ liệu của nó, cũng như bất kỳ trường nào khác ..

Tham khảo gì trong MongoDB?

Các ứng dụng MongoDB sử dụng một trong hai phương thức cho các tài liệu liên quan: Tài liệu tham khảo thủ công trong đó bạn lưu trường _ID của một tài liệu trong tài liệu khác làm tài liệu tham khảo.Sau đó, ứng dụng của bạn có thể chạy truy vấn thứ hai để trả về dữ liệu liên quan.Những tài liệu tham khảo này là đơn giản và đủ cho hầu hết các trường hợp sử dụng.Manual references where you save the _id field of one document in another document as a reference. Then your application can run a second query to return the related data. These references are simple and sufficient for most use cases.

Làm cách nào để chọn một bộ sưu tập trong vỏ MongoDB?

Kết nối với cơ sở dữ liệu MongoDB bằng Mongo.Điều này sẽ bắt đầu kết nối ..
Sau đó chạy lệnh hiển thị lệnh dbs.Điều này sẽ cho bạn thấy tất cả các cơ sở dữ liệu có sẵn/có sẵn ..
Sau đó chọn cơ sở dữ liệu bạn muốn.Trong những điều trên nó là anuradhfirst.....
sau đó chạy lệnh hiển thị bộ sưu tập ..

Làm thế nào lấy dữ liệu từ các bộ sưu tập trong MongoDB?

Bạn có thể sử dụng các hoạt động đọc để truy xuất dữ liệu từ cơ sở dữ liệu MongoDB của bạn.Có nhiều loại hoạt động đọc truy cập dữ liệu theo các cách khác nhau.Nếu bạn muốn yêu cầu kết quả dựa trên một tập hợp các tiêu chí từ bộ dữ liệu hiện có, bạn có thể sử dụng một thao tác tìm kiếm như các phương thức Find () hoặc findOne ().use read operations to retrieve data from your MongoDB database. There are multiple types of read operations that access the data in different ways. If you want to request results based on a set of criteria from the existing set of data, you can use a find operation such as the find() or findOne() methods.