2016-04-13 14 views
1

Özgün mongoose ObjectID dizesi yerine, objectID yöntemlerini (ValueOf(), String(), ....) tutmak yerine, UUID tarafından oluşturulan bir dizeyi nasıl kullanabilirim? i UUID oluşturmak ve benim modelindemongoose öğesinde objectID olarak uuid kullanıldı

ile benim firavunfaresi şemada kullanmaya çalıştığınızda

: Modelimin/şemada

var uniqueUUID = uuid.v4(); 
createUser = user({ 
      'myid': uniqueUUID, 
}); 

:

var userSchema = new mongoose.Schema({ 

_id: Schema.Types.ObjectId 

}); 

bir doğrulama hatası var .

ValidationError: user validation failed 
+1

http://stackoverflow.com/questions/27438882/using-uuids-in-mongoose-for-objectid-references – dcohenb

cevap

0

Şemada bulunmayan bir anahtar eklemeye çalışıyorsunuz. Şemanınızda myid anahtar tanımlanmamış. Varsayılan olarak, Mongoose önceden tanımlanmamış tuşlara izin vermez.

Böyle bir şey olması o kadar değiştirebilirsiniz: otomatik oluşturulan uuid.v4 değeri ile nesne kimliği atayacaktır

var userSchema = new mongoose.Schema({ 

_id: {type: String, default: uuid.v4} 

}); 

.

kullanıcı kullanımını oluştururken: otomatik belge için id atadığı

var newUser = new user(); 

. Sadece onu kurtarmayı unutma.

myid adlı başka bir kimlik alanına sahip olmak istiyorsanız, _id'in nasıl eklendiğini takip ederek şemaya ekleyebilirsiniz.

+0

Tamam, kodumda bir hata yaptım. _id tipi Dize olmalıdır. Şimdi düzenleniyor. – Snekw