2016-01-12 20 views
6

Tôi đang sử dụng mô hình Mongoose sau:Make sự kết hợp của hai lĩnh vực độc đáo trong bộ sưu tập của tôi

var Test = db.model('Test', db.Schema({ 
     one: { type: String, required: true }, 
     two: { type: String, required: true } 
    }, 
    { strict: false }) 
); 

Nó có hai trường bắt buộc, onetwo, và strict:false vì có thể có các lĩnh vực khác với những cái tên chưa xác định.

Tôi muốn kết hợp của onetwo là duy nhất. Điều đó có nghĩa có thể có nhiều tài liệu với cùng one hoặc cùng two, nhưng không ai trong số họ sẽ có cùng onetwo kết hợp.

Điều này có thể đạt được với Mongoose không?

Trả lời

8

Bạn có thể thực thi một unique constraint on compound indexes, và bạn có thể làm điều này trong Mongoose sử dụng index() phương pháp giản đồ, trong đó xác định các chỉ số ở cấp schema:

var testSchema = db.Schema({ 
    "one": { "type": String, "required": true }, 
    "two": { "type": String, "required": true } 
}, { "strict": false }); 

testSchema.index({ "one": 1, "two": 1}, { "unique": true }); 
var Test = db.model("Test", testSchema); 
+0

Có cách nào để làm điều tương tự nếu "hai" là một ref cho lược đồ khác? cảm ơn –

Các vấn đề liên quan