I Have a schema như vậy:schema tài liệu Mongoose và xác nhận
class Schemas
constructor: ->
@mongoose = require 'mongoose'
@schema = @mongoose.Schema
@EmployeeSchema = new @schema
'firstname': { type: String, required: true },
'lastname': { type: String, required: true },
'email': { type: String, required: true, index: { unique: true }, validate: /\b[a-zA-Z0-9._%+-][email protected][a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}\b/ },
'departmentId': { type: @schema.ObjectId, required: true }
'enddate': String,
'active': { type: Boolean, default: true }
@EmployeeSchemaModel = @mongoose.model 'employees', @EmployeeSchema
@DepartmentSchema = new @schema
'name': { type: String, required: true, index: { unique: true } }
'employees' : [ @EmployeeSchema ]
@DepartmentSchemaModel = @mongoose.model 'departments', @DepartmentSchema
Vì vậy mà tôi employees
sống trong một mảng của employee
tài liệu bên trong một department
Tôi có một vài department
tài liệu có một số employee
tài liệu được lưu trữ trong mảng employees
.
Sau đó, tôi đã thêm department
mới nhưng không chứa employees
. Nếu sau đó tôi cố thêm một số khác department
mà không cần employees
, Mongoose sẽ tạo ra một trường hợp Duplicate key error
cho trường employee.email
là trường bắt buộc. Trường employee.email
là bắt buộc và duy nhất và cần phải có.
Dù sao có làm tròn cái này?
Cảm ơn Johhny, tôi đã không nhận thức được lệnh _debug_, đó là tiện dụng để biết để gỡ lỗi trong tương lai. Tôi cũng không biết rằng Mongoose đã tạo ra 2 chỉ mục (thực sự khi tôi chỉ yêu cầu một chỉ mục.) Tôi biết tôi có thể tạo 2 bộ sưu tập khác nhau và có một bộ sưu tập _refer_ bằng một 'ObjectId', nhưng sau đó tôi quay lại một mô hình quan hệ. Đã sử dụng RDMS trong nhiều năm, tôi muốn sử dụng một cấu trúc nhúng có vẻ phù hợp với mô hình này. Như một sự thỏa hiệp, tôi cho rằng tôi có thể tham khảo một bộ sưu tập _email-address_ từ bên trong đối tượng nhân viên được nhúng và tạo một chỉ mục duy nhất. –