Mongoose select: false не работает с вложенным объектом location
Я хочу location
поле моей схемы будет скрыто по умолчанию.
Я добавил select: false
свойство к нему, но оно всегда возвращается при выборе документов...
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'});
при вызове :
User.find({ }, function(err, result){
console.log(result[0]);
});
выход :
{
cellphone: '+33656565656',
location: { type: 'Point', coordinates: [Object] } <-- Shouldn't
}
EDIT: объяснение (благодаря @alexmac)
параметр SchemaType select должен применяться к полям options not a type. В ВЫ примеру вы определение местоположения сложного типа и Добавление параметра select в тип.
1 ответов
вы должны сначала создать locationSchema
и после этого использовать тип схемы 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
}
});