2013-05-14 40 views
9

là giản đồ dưới đây được xác định một cách chính xác hoặc không writing cần phải writing: [Schema.Types.Mixed]haywriting: [{}]?hiểu biết cầy mangut [Schema.Types.Mixed]

Tức là, nếu bạn có một bộ từ điển - [{}, {}, {}] - bạn không thể xác định trước cấu trúc bên trong trừ khi bạn tạo một lược đồ khác và nhúng nó vào. Đó có phải là cách giải thích đúng đắn của tài liệu không?

http://mongoosejs.com/docs/schematypes.html

var blogSchema = new mongoose.Schema({ 
    title: String, 
    writing: [{ 
     post: String, 
     two: Number, 
     three : Number, 
     four : String, 
     five : [{ a: String, 
        b : String, 
        c : String, 
        d: String, 
        e: { type: Date, default: Date.now }, 
       }] 
    }], 
}); 

Cảm ơn.

Trả lời

18

Giản đồ đó là tốt. Việc xác định một đối tượng trong một phần tử lược đồ mảng được xử lý ngầm như đối tượng Schema của riêng nó. Như vậy họ sẽ có _id lĩnh vực riêng của họ, nhưng bạn có thể tắt rằng bằng cách định nghĩa một cách rõ ràng schema với _id tùy chọn vô hiệu hóa:

var blogSchema = new mongoose.Schema({ 
    title: String, 
    writing: [new Schema({ 
     post: String, 
     two: Number, 
     three : Number, 
     four : String, 
     five : [new Schema({ 
      a: String, 
      b: String, 
      c: String, 
      d: String, 
      e: { type: Date, default: Date.now }, 
     }, {_id: false})] 
    }, {_id: false})], 
}); 
+2

Được rồi. Đó là "lược đồ ngầm" là một cái nhìn sâu sắc lớn. Cảm ơn. Điều đó có nghĩa là sau đó tôi nên sử dụng .populate() để làm việc với những điều này. Tôi đã gặp khó khăn trong việc tìm kiếm thông tin từ điển trong mảng. –

+2

@ cathy.sasaki Không, đây là một lược đồ cho các đối tượng nhúng. Bạn chỉ sử dụng 'populate' khi lược đồ của bạn chứa một tham chiếu' ObjectId' rõ ràng tới một bộ sưu tập (mô hình) khác. – JohnnyHK

+1

@JonnyHK OK. Bạn là wiz tại mongodb, là có một cuốn sách cụ thể bạn đề nghị? Hay bạn chỉ nghèo hơn tài liệu? Tôi đang cố gắng để thiết lập một nền tảng kiến ​​thức về mặt trận này. –