[解決済み] Mongoose/MongoDB のパスワードフィールドを保護し、コレクションへの入力時にクエリで返さないようにするには?
2023-01-03 03:30:28
質問
2 つのコレクション/スキーマがあるとします。ひとつはユーザー名とパスワードフィールドを持つUsers Schemaで、もうひとつはauthorフィールドにUsers Schemaへの参照を持つBlogs Schemaを持っています。Mongoose を使って次のようなことをします。
Blogs.findOne({...}).populate("user").exec()
Blogドキュメントとユーザーも入力させるつもりですが、Mongoose/MongoDBがパスワードフィールドを返すのを防ぐにはどうしたらよいでしょうか?パスワードフィールドはハッシュ化されていますが、返されることはないはずです。
単純なクエリでパスワードフィールドを省略して残りのフィールドを返すことができるのは知っていますが、populateでそれを行うにはどうしたらいいでしょうか。また、これを行うためのエレガントな方法はありますか?
また、ユーザーがログインまたはパスワードを変更したいときのように、いくつかの状況で私はパスワードフィールドを取得する必要があります。
どのように解決するのですか?
.populate('user' , '-password')
http://mongoosejs.com/docs/populate.html
JohnnyHKの回答では、Schemaオプションを使用することが、おそらくこの方法でしょう。
また、以下の点にもご注目ください。
query.exclude()
は2.xブランチにしか存在しません。
関連
-
[解決済み】エラーです。EACCES: 権限が拒否されました、アクセス '/usr/local/lib/node_modules' 。
-
[解決済み] (node:63208) DeprecationWarning: collection.ensureIndex は非推奨です。代わりにcreateIndexesを使用してください [重複]。
-
[解決済み】MongoDBでコレクションを日付で並べ替えるには?
-
[解決済み】MongoDBシェルですべてのコレクションを一覧表示するには?
-
[解決済み] Node.jsで「btoaが定義されていない」エラーが発生する
-
[解決済み] NodeJsのSequelizeでautoIncrementはどのように動作するのですか?
-
[解決済み] node.jsのセットアップウィザードが途中で終了してしまう
-
[解決済み] MongoDBに "like "を使ってクエリを実行する方法
-
[解決済み] コマンドラインからMongoDBデータベースを削除する方法を教えてください。
-
[解決済み] Mongooseの"__v "フィールドとは?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Nodejs: Errorを解決する方法。ENOENT: そのようなファイルまたはディレクトリがありません
-
[解決済み】AWS Lambdaでnodejsの「ref」モジュールを使用すると「invalid ELF header」と表示される件
-
[解決済み] 非推奨パッケージに関するNPM警告メッセージ
-
[解決済み】MongoDBでコレクションを日付で並べ替えるには?
-
[解決済み】passport.js passport.initialize() ミドルウェアが使用されていません。
-
[解決済み】NPMインストールエラー:解析中の予期せぬJSON入力の終了 '...nt-webpack-plugin": "0'' 付近。
-
[解決済み] E: npm パッケージを見つけることができません。
-
[解決済み] http-server コマンドが見つかりません。
-
[解決済み] TypeErrorです。リクエストパスにエスケープされていない文字が含まれています。
-
[解決済み] nvm は npm config の "prefix" オプションと互換性がありません。