node.js - update - mongoose findbyid



Mongoose select:false不適用於位置嵌套對象 (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
    }
});

https://ffff65535.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選擇選項必須應用於字段選項不是一個類型。 在你的例子中,你已經定義了一個複雜類型的位置,並將選擇選項添加到類型。