[解決済み】Mongoose: findOneAndUpdateが更新されたドキュメントを返さない
2022-03-25 14:14:02
質問
以下は私のコードです。
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/test');
var Cat = mongoose.model('Cat', {
name: String,
age: {type: Number, default: 20},
create: {type: Date, default: Date.now}
});
Cat.findOneAndUpdate({age: 17}, {$set:{name:"Naomi"}},function(err, doc){
if(err){
console.log("Something wrong when updating data!");
}
console.log(doc);
});
私はすでに私のmongoデータベースにいくつかのレコードを持っていると私は年齢が17であるための名前を更新し、コードの最後に結果を表示するために、このコードを実行したいと思います。
しかし、コンソールからは同じ結果が得られるのに、mongo db のコマンドラインに移動して " と入力すると、変更された名前が表示されないのはなぜですか?
db.cats.find();
となります。結果は修正された名前で出てきました。
その後、もう一度このコードを実行すると、結果が修正されています。
質問ですが、もしデータが変更されたのなら、なぜ最初のコンソール.logでは元のデータが残っているのでしょうか?
どうすればいいですか?
なぜこのようなことが起こるのでしょうか?
は
デフォルト
を返すことです。
元の、変更されていない
ドキュメントを作成します。もし新しく更新されたドキュメントを返したい場合は、追加の引数を渡さなければなりません。
new
プロパティに設定されている
true
.
から マングース・ドックス :
クエリ#findOneAndUpdate
Model.findOneAndUpdate(conditions, update, options, (error, doc) => { // error: any errors that occurred // doc: the document before updates are applied if `new: false`, or after updates if `new = true` });
利用可能なオプション
new
: bool - if 真 を返します。 修正済み ドキュメントを返します。 デフォルトは false (4.0にて変更)
解決方法
パス
{new: true}
で更新された結果が必要な場合は
doc
変数を使用します。
// V--- THIS WAS ADDED
Cat.findOneAndUpdate({age: 17}, {$set:{name:"Naomi"}}, {new: true}, (err, doc) => {
if (err) {
console.log("Something wrong when updating data!");
}
console.log(doc);
});
関連
-
[解決済み] エラー: nodejs の get 呼び出しで getaddrinfo ENOTFOUND が発生しました。
-
[解決済み】ENOENT, そのようなファイルまたはディレクトリがありません。
-
[解決済み】nodemon - app crashed - waiting for file changes before start
-
[解決済み] ExpressJS : res.redirect()が期待通りに動作しない?
-
[解決済み] express は `body-parser deprecated undefined extended` としてエラーを投げます。
-
[解決済み] NodeJsのSequelizeでautoIncrementはどのように動作するのですか?
-
[解決済み] 特定の値を含む配列で文書を検索する
-
[解決済み] Mongooseで文書を更新/アップサートするにはどうしたらいいですか?
-
[解決済み] Mongooseの"__v "フィールドとは?
-
[解決済み] 終了したらmongooseの接続を適切に終了させること
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】「安全なTLS接続が確立される前にクライアントのネットワークソケットが切断されました」(ノード10
-
[解決済み] 再インストールを繰り返しても、npm run でモジュール 'sass' が見つからない。
-
[解決済み] エラー: nodejs の get 呼び出しで getaddrinfo ENOTFOUND が発生しました。
-
[解決済み】 console.logの出力をどこに永久保存するか?
-
[解決済み】Google spreadsheet api Requestに不十分な認証スコープがあった。
-
[解決済み】ENOENT, そのようなファイルまたはディレクトリがありません。
-
[解決済み】Mongooseで、日付でソートするにはどうしたらいいですか?(node.js)
-
[解決済み] ExpressJS : res.redirect()が期待通りに動作しない?
-
[解決済み] エラーです。Ionic使用中にモジュール '../lib/utils/unsupported.js' が見つかりません。
-
[解決済み] NPMが同じエラーで固まる EISDIR: ディレクトリに対する不正な操作、エラーで読み込み (ネイティブ)