短くてクリアです:スキーマフィールドの設定を防ぐが、値を取得する方法はありますか?Mongoose Schema securedフィールド
私はMongoose Documentationの周りにいましたが、私が探しているものは見つかりませんでした。
短くてクリアです:スキーマフィールドの設定を防ぐが、値を取得する方法はありますか?Mongoose Schema securedフィールド
私はMongoose Documentationの周りにいましたが、私が探しているものは見つかりませんでした。
従来のフィールドではなく、virtualゲッターとしてフィールドを定義します。それは、この中に破損することが可能ですあなたのモデルインスタンスのプライベート_doc
メンバーにアクセスすることにより
var schema = new Schema({
city: String,
state: String
});
schema.virtual('pop').get(function() {
return this._doc.pop;
});
:
例えばは、あなたがマングースを介してアクセス読み取り専用コレクションのpop
場を作りたかったと言います未来だが、これを今テストしたところ、これはうまくいきました。
代替あなたが変更することはできませんデフォルト値を設定する場合:
var schema = new Schema({
securedField: {
type: String,
default: 'Forever',
set: function (val) { return this.securedField; }
});
この仕事をどうしますか?バーチャルは永続化されません。 – sidgate
@sidgateこれは古い回答であり、スキーマに定義されていないフィールドを公開するためのハックですが、基礎となるドキュメントには存在します。だから、バーチャルが永続化されないのは正しいですが、 'pop'フィールドはすでにそこにあるので、(文書化されていない)' _doc'フィールドを介して生の文書が利用可能であるために動作します。 – JohnnyHK