次のスキーマがあります。
var UserSchema = new mongoose.Schema({
username: {
type: String,
unique: true,
required: true
},
password: {
type: String,
required: true
},
test: {
type: String,
default: 'hello world'
}
});
UserSchema.pre('save', function(callback) {
var user = this;
this.test = undefined; // here unset test field which prevent to add in db
});
module.exports = mongoose.model('User', UserSchema);
しかし、たとえばデータを見つけたとき
User.find(function(err, users) {
if (err)
res.send(err);
res.json(users);
});
それはいつも戻ってくる
[
{
_id: "56fa6c15a9383e7c0f2e4477",
username: "abca",
password: "$2a$05$GkssfHjoZnX8na/QMe79LOwutun1bv2o76gTQsIThnjOTW.sobD/2",
__v: 0,
test: "hello world"
}
]
test
フィールドなしでクエリを変更せずにデータを取得するために、特別なパラメータを変更または追加するにはどうすればよいですか。
User.find({}, '-test', function (err, users){
});
また、モデルにデフォルト値を設定しましたtest: "hello world"
が、この値を応答に表示したくありません。私も設定this.test = undefined;
しましたが、これは、このデフォルト値がデータベースに追加されるのを妨げていることを意味するはずですが、応答としてまだこれを取得しています。