MongoDB – 使用Mongoose模式 – 如何告诉Mongoose不保存特定的字段

说我有一个Mongoose模式,看起来像这样:

userSchema = mongoose.Schema({ username: { type: String, isUnique: true, required: true }, teamSnap: { username: String, password: String }, password: { type: String, required: true }, linkedin_id: Number, email: { type: String, required: true }, numberOfLineupsCreated: Number, hasPaidAlready: Boolean, longitude: Number, registered_at: { type: Date, default: Date.now }, created_at: { type: Date, default: Date.now }, updated_at: { type: Date, default: Date.now } }); 

我如何告诉Mongoose不要在数据库中保存/存储teamSnap字段?

你可以重新定义toJSON()方法并删除你的字段:

 UserSchema.methods.toJSON = function() { var obj = this.toObject() delete obj.teamSnap return obj } 

如果你不需要在数据库中保存一个字段,为什么你需要在你的模型类?

您可以稍后将其添加到您从MongoDB查询的对象。

 db.users.findOne({id: id}, function(err, user) { user.teamSnap = value });