Desidero che il campo location
del mio schema sia nascosto per impostazione predefinita. Ho aggiunto select: false
proprietà ad esso, ma è sempre tornato quando si seleziona i documenti ...Mongoose select: false non funziona su posizione nidificata dell'oggetto
var userSchema = new mongoose.Schema({
cellphone: {
type: String,
required: true,
unique: true,
},
location: {
'type': {
type: String,
required: true,
enum: ['Point', 'LineString', 'Polygon'],
default: 'Point'
},
coordinates: [Number],
select: false, <-- here
},
});
userSchema.index({location: '2dsphere'});
al momento della chiamata:
User.find({ }, function(err, result){ console.log(result[0]); });
l'output è:
{
cellphone: '+33656565656',
location: { type: 'Point', coordinates: [Object] } <-- Shouldn't
}
MODIFICA: Spiegazione (grazie a @alexmac)
L'opzione di selezione SchemaType deve essere applicata alle opzioni di campo e non a un tipo. Nell'esempio hai definito un tipo di posizione complesso e hai aggiunto un'opzione di selezione a un tipo.
Che dire findOne, lo fa tornare o no? – libik
Il problema è stato risolto. E sì, findOne lo ha restituito :) – FrenchFalcon
Sarebbe bello se tu avessi condiviso la tua soluzione. @MalteseFalcon – Cozzbie