MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

mongoose - ObjectId tham chiếu đến một tài liệu con

Có, nó có thể, nhưng bạn có một vài lựa chọn.

Tùy chọn 1:C dưới dạng Tài liệu con

Nếu bạn thực sự muốn sử dụng các tài liệu con, bạn không cần phải tạo một mô hình riêng biệt. Bạn cần thay đổi tham chiếu của mình thành mảng 'c'.

var C = new Schema({...});  
var B = new Schema({c: [C]});  
var A = new Schema({c: { type: ObjectId, ref: 'ModelB.c' });  

var Model_A = mongoose.model('ModelA', A);  
var Model_B = mongoose.model('ModelB', B); 

Tùy chọn 2:C as a Model

(Tôi chỉ trình bày điều này như một giải pháp thay thế - vì ví dụ của bạn có vẻ thừa vì bạn tạo 'C' dưới dạng Mô hình riêng biệt cũng như tài liệu phụ)

Ngoài ra, có thể có ý nghĩa khi có các bộ sưu tập riêng biệt, bạn có thể tạo một mô hình mongoose cho mỗi bộ sưu tập. Mỗi bộ sưu tập sẽ là một bộ sưu tập riêng biệt:

var Model_A = mongoose.model('ModelA', A);  
var Model_B = mongoose.model('ModelB', B);  
var Model_C = mongoose.model('ModelC', C);

Trong trường hợp này, bạn có thể muốn tham khảo trực tiếp từng mô hình:

var C = new Schema({...});  
var B = new Schema({c: { type: ObjectId, ref: 'ModelC' }});  
var A = new Schema({c: { type: ObjectId, ref: 'ModelC' }); 

Điểm nhấn

Có thể, nhưng bạn cần phải chọn nếu bạn muốn C làm mô hình hoặc tài liệu phụ.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. số nhóm mongodb và nhóm con

  2. Thiết kế lược đồ MongoDB - Bỏ phiếu cho bài đăng

  3. Làm cách nào để khởi tạo bộ sao chép mongodb mà không cần gọi rs.initiate ()?

  4. Nhóm MongoDB theo giờ

  5. Cung cấp thứ tự sắp xếp từ các giá trị chuỗi trong tổng hợp mongdb