Mongoose: findOneAndUpdate باستخدام findAndModify

تم إنشاؤها على ١٠ يوليو ٢٠١٦  ·  3تعليقات  ·  مصدر: Automattic/mongoose

لماذا تستخدم طريقة findOneAndUpdate findAndModify تحت الغطاء بدلاً من findOneAndUpdate ؟

أحتاج إلى تمرير إعدادات الإسقاط ولكنها لا تعمل لأن findAndModifiy لا يأخذ مثل هذه المعلمات ، وبالتالي فإنه يعيد المستند بأكمله.

على سبيل المثال:

Product
      .findOneAndUpdate({
        _id: productId,
      }, {
        $push: {colors: data},
      }, {
        projection: {
          name: 1, 'colors.$': 1,
        },
        returnNewDocument: true,
      })

التعليق الأكثر فائدة

نعم ، هناك القليل من الالتباس لأن كل واجهة برمجة تطبيقات تريد أن تكون ندفة ثلجية خاصة بها :) الآن بعد أن أضاف برنامج التشغيل mongodb وظيفة findOneAndUpdate() لها مراوغات خاصة بها ، لست متأكدًا بعد من كيفية المتابعة على mongoose's fineOneAndUpdate ( )

ال 3 كومينتر

لأن النمس findOneAndUpdate() يسبق فترة طويلة وجود findOneAndUpdate() في برنامج التشغيل الأساسي ، و findOneAndUpdate() للسائق هو مجرد غلاف رقيق حول findAndModify أي حال. أيضًا ، يحتوي برنامج التشغيل findOneAndUpdate() على العديد من الدلالات الغريبة ، خاصة فيما يتعلق بخيار new والفرق بين new و returnNewDocument ، والتي تعتبر مزعجة للنمس.

لا تعمل التوقعات مشكلة إلى حد ما. حاول استخدام "الحقول" بدلاً من "الإسقاط" ، لأن هذا هو الاسم الذي تستخدمه الوظيفة الأساسية findAndModify

شكرا للتوضيح. نعم ، لقد لاحظت وجود بعض الاختلافات الغريبة في التسمية ، على سبيل المثال fields مقابل projection و new مقابل returnNewDocument .

نعم ، هناك القليل من الالتباس لأن كل واجهة برمجة تطبيقات تريد أن تكون ندفة ثلجية خاصة بها :) الآن بعد أن أضاف برنامج التشغيل mongodb وظيفة findOneAndUpdate() لها مراوغات خاصة بها ، لست متأكدًا بعد من كيفية المتابعة على mongoose's fineOneAndUpdate ( )

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات