Mongoose: findOneAndUpdate menggunakan findAndModify

Dibuat pada 10 Jul 2016  ·  3Komentar  ·  Sumber: Automattic/mongoose

Mengapa metode findOneAndUpdate menggunakan findAndModify di bawah tenda alih-alih findOneAndUpdate ?

Saya perlu melewati pengaturan proyeksi tetapi tidak berfungsi karena findAndModifiy tidak mengambil parameter seperti itu, dan karena itu mengembalikan seluruh dokumen.

Misalnya:

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

Komentar yang paling membantu

Ya, ada sedikit kebingungan di sana karena setiap API ingin menjadi kepingan saljunya sendiri :) Sekarang driver mongodb menambahkan fungsi findOneAndUpdate() yang memiliki kebiasaannya sendiri, belum begitu yakin dengan cara melanjutkan di fineOneAndUpdate( )

Semua 3 komentar

Karena findOneAndUpdate() long luwak mendahului keberadaan findOneAndUpdate() di driver mongodb yang mendasarinya, dan findOneAndUpdate() driver hanyalah pembungkus tipis di sekitar findAndModify . Juga, findOneAndUpdate() driver memiliki beberapa semantik yang unik, terutama terkait dengan opsi new dan perbedaan antara new dan returnNewDocument , yang merepotkan luwak.

Proyeksi tidak berfungsi adalah sedikit masalah. Coba gunakan 'bidang' alih-alih 'proyeksi', karena itulah nama yang digunakan fungsi findAndModify yang mendasarinya

Terima kasih telah mengklarifikasi. Ya, saya perhatikan bahwa ada beberapa perbedaan aneh dalam penamaan, misalnya fields vs projection dan new vs. returnNewDocument .

Ya, ada sedikit kebingungan di sana karena setiap API ingin menjadi kepingan saljunya sendiri :) Sekarang driver mongodb menambahkan fungsi findOneAndUpdate() yang memiliki kebiasaannya sendiri, belum begitu yakin dengan cara melanjutkan di fineOneAndUpdate( )

Apakah halaman ini membantu?
0 / 5 - 0 peringkat