[mongoose] findOneAndUpdate

4546 ワード

ソース:https://mongoosejs.com/docs/tutorials/findoneandupdate.html
ブックマーク機能ではfindOneAndUpdateを使用し、更新後のドキュメントではなく、更新前に見つかったドキュメントを返します.モンゴル語を見てみました.
名前に示すように、指定、適用、findOneAndUpdate()ドキュメントと一致する最初のドキュメントを検索して返します.デフォルトでは、ドキュメントは適用前の状態に戻ります.filterupdatefindOneAndUpdate() update
そうだそうです.
適用したドキュメントを返す場合は、次の操作を行います.
適用後、ドキュメントに戻る新しいオプションを設定する必要があります.true update
const filter = { name: 'Jean-Luc Picard' };
const update = { age: 59 };

// `doc` is the document _after_ `update` was applied because of
// `new: true`
let doc = await Character.findOneAndUpdate(filter, update, {
  new: true
});
doc.name; // 'Jean-Luc Picard'
doc.age; // 59
findで見つけたドキュメントのみを返します
const result = await Post.findOneAndUpdate(
    { postId: postId },
    { $push: { userBookmark: { _id: userId._id } } }
  );
更新を適用したドキュメントに戻る場合
const result = await Post.findOneAndUpdate(
    { postId: postId },
    { $push: { userBookmark: { _id: userId._id } } },
    { new: true }
  );
まだ長い道がある...