node.js - query - Mongoose select:위치 중첩 된 객체에서 false가 작동하지 않습니다.



mongoose schematype (1)

먼저 locationSchema 만들고 그 다음에 select: false 와 함께 스키마 유형을 사용해야합니다 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
    }
});

https://src-bin.com

내 스키마의 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
 }

편집 : 설명 (감사 @ alexmac)

SchemaType 선택 옵션은 유형이 아닌 필드 옵션에 적용되어야합니다. 예를 들어 복잡한 유형의 위치를 ​​정의하고 유형에 선택 옵션을 추가했습니다.