Kısa ve net: şema alanı ayarlamayı engellemenin, ancak değeri elde etmenin bir yolu var mı?Mongoose Schema güvenli alan
Ben Mongoose Documentation etrafında oldum ama ne aradığımı bulamıyorum.
Kısa ve net: şema alanı ayarlamayı engellemenin, ancak değeri elde etmenin bir yolu var mı?Mongoose Schema güvenli alan
Ben Mongoose Documentation etrafında oldum ama ne aradığımı bulamıyorum.
Alanı, geleneksel alan yerine virtual alıcı olarak tanımlayın. Bu içinde bozulabilir mümkündür modeliniz örneğinin özel _doc
üyesi erişerek
var schema = new Schema({
city: String,
state: String
});
schema.virtual('pop').get(function() {
return this._doc.pop;
});
:
Örneğin, sen Gelincik üzerinden erişilebilir salt okunur koleksiyonunuzun pop
alanını yapmak istedim demek Gelecek, ama şimdi test ettim bu iyi çalıştı.
Alternatif sen hiçbir zaman değiştirilemez varsayılan bir değer belirlemek istiyorsanız:
var schema = new Schema({
securedField: {
type: String,
default: 'Forever',
set: function (val) { return this.securedField; }
});
bu nasıl oluyor? Sanallar ısrar etmiyor, değil mi? – sidgate
@sidgate Bu, şemada tanımlı olmayan, ancak temel belgelerinde bulunan bir alanı açığa çıkarmak için kullanılan eski bir yanıttır. Yani, sanalların ısrar etmemesi haklısın, ama 'pop 'alanı zaten orada olduğundan, ham belge (belgesiz)' _doc' alanı aracılığıyla kullanılabilir çünkü çalışır. – JohnnyHK