我的模式是:MongooseJS獨特的組合指數
var ItemSchema = new Schema({
sku: {
type: String,
trim: true,
index: true,
required: true
},
description: {
type: String,
trim: true,
required: true
},
client_id: {
type: Schema.ObjectId,
ref: 'Client',
index: true,
required: true
}
}, {versionKey: false, autoIndex: false});
ItemSchema.index({sku: 1, client_id: 1}, {unique: true});
我想的SKU爲每CLIENT_ID唯一的。所以我認爲這個指數可以做到這一點。我運行mocha
單元測試和測試是:
it('should fail if the sku is not unique per client', function(done) {
var secondItem = validItem;
return validItem.save(function(err) {
should.not.exist(err);
return secondItem.save(function(err) {
should.exist(err);
done();
});
});
});
與保存的第二項(同sku
和相同client_id
)的邏輯應導致錯誤。然而,我沒有錯誤:
1) <Unit Test> Model Item: Method Save should fail if the sku is not unique per client:
Uncaught AssertionError: expected null to exist
我在做什麼錯?
你可以試試嗎? var secondItem = JSON.parse(JSON.Stringify(validItem));我的猜測是您的原始引用在'validItem.save'之後失效' – Kiran