[解決済み] Mongoose findByIdAndUpdateが正しいモデルを返さない
2022-08-13 04:51:39
質問
MongooseのfindByIdAndUpdateがコールバックで正しいモデルを返さないという、今まで見たことのない問題が発生しています。
以下はそのコードです。
var id = args._id;
var updateObj = {updatedDate: Date.now()};
_.extend(updateObj, args);
Model.findByIdAndUpdate(id, updateObj, function(err, model) {
if (err) {
logger.error(modelString +':edit' + modelString +' - ' + err.message);
self.emit('item:failure', 'Failed to edit ' + modelString);
return;
}
self.emit('item:success', model);
});
dbにあるオリジナルドキュメントはこのようになっています。
{
_id: 1234
descriptors: Array[2],
name: 'Test Name 1'
}
入るupdateObjはこんな感じです。
{
_id: 1234
descriptors: Array[2],
name: 'Test Name 2'
}
コールバックから返されるモデルは、updatedObjではなく、元のモデルと同じです。 dbに問い合わせると、正しく更新されています。 ただ、データベースから返されていないだけです。
これは、「愚かなユーザー」エラーのように感じますが、私はそれを見ることができません。 どんなアイデアでも大いに歓迎します。
どのように解決するのですか?
Mongoose 4.0 では、デフォルトの値として
new
オプションの
findByIdAndUpdate
(そして
findOneAndUpdate
) に変更されました。
false
に変更されました。これは、古い doc を返すことを意味します(#2262 の
リリースノート
). そのため、明示的にオプションを
true
に設定する必要があります。
Model.findByIdAndUpdate(id, updateObj, {new: true}, function(err, model) {...
関連
-
[解決済み】AWS STS AssumeRoleへのアクセスを可能にする方法
-
[解決済み] (node:63208) DeprecationWarning: collection.ensureIndex は非推奨です。代わりにcreateIndexesを使用してください [重複]。
-
[解決済み】ExpressJSとMeteorJSの比較【終了しました
-
[解決済み】Mongooseで、日付でソートするにはどうしたらいいですか?(node.js)
-
[解決済み] エラーメッセージ MongoError: bad auth URI 文字列で認証に失敗しました。
-
[解決済み] NPMが同じエラーで固まる EISDIR: ディレクトリに対する不正な操作、エラーで読み込み (ネイティブ)
-
[解決済み] 配列フィールドが空でない MongoDB レコードを検索する
-
[解決済み] Mongooseで文書を更新/アップサートするにはどうしたらいいですか?
-
[解決済み] Mongooseの"__v "フィールドとは?
-
[解決済み】Mongoose: findOneAndUpdateが更新されたドキュメントを返さない
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】mongoError: トポロジーが破壊されました
-
[解決済み] テスト
-
[解決済み] 非推奨パッケージに関するNPM警告メッセージ
-
[解決済み】Heroku + node.jsのエラー(Webプロセスが起動後60秒以内に$PORTにバインドできなかった)。
-
[解決済み] Heroku "状態が起動から停止に変更されました SIGTERMで全プロセスを停止"
-
[解決済み] nvm は npm config の "prefix" オプションと互換性がありません。
-
[解決済み] Macでポート3000をロックしているプロセスを見つける(そして殺す)【終了
-
[解決済み] NPMが同じエラーで固まる EISDIR: ディレクトリに対する不正な操作、エラーで読み込み (ネイティブ)
-
[解決済み] ノードのバージョンを管理するためのnまたはnvm - 各バージョンのグローバルモジュールを保持することは良いアイデアですか?
-
[解決済み] Mongoose Schema がモデルとして登録されていません。