node.js - operator - mongoose query
Mongoose select: falso no funciona en el objeto anidado ubicaciĆ³n (1)
Primero debe crear locationSchema
y luego usar el tipo de esquema con select: false
:
var locationSchema = new mongoose.Schema({
''type'': {
type: String,
required: true,
enum: [''Point'', ''LineString'', ''Polygon''],
default: ''Point''
},
coordinates: [Number]
}
});
var userSchema = new mongoose.Schema({
location: {
type: locationSchema,
select: false
}
});
Quiero que el campo de location
de mi esquema esté oculto de manera predeterminada. Le agregué select: false
property, pero siempre se devuelve cuando selecciono documentos ...
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 llamar:
User.find({ }, function(err, result){ console.log(result[0]); });
la salida es:
{
cellphone: ''+33656565656'',
location: { type: ''Point'', coordinates: [Object] } <-- Shouldn''t
}
EDITAR: Explicación (gracias a @alexmac)
La opción de selección SchemaType se debe aplicar a las opciones de campo, no a un tipo. En su ejemplo, ha definido un tipo complejo Ubicación y una opción de selección agregada a un tipo.