在mongoose中有关于更新对象的详细介绍
最近在使用mongoose的时候发现了一个之前一直没注意的知识点,下面这篇文章主要给大家介绍了关于mongoose更新对象的两种方法,通过示例代码将两种方法进行详细的对比,以给大家更好的参考学习,需要的朋友可以参考下。
前言
Mongoose是在node.js异步环境下对mongodb进行便捷操作的对象模型工具
那么要使用它,首先你得装上node.js和mongodb,关于mongodb的安装和操作介绍可以参考://www.jb51.net/article/80296.htm
演示
描述场景
更新购物车数量与勾选状态
业务逻辑
查询到当前用户的购物车对象Cart,更新前端传递过来的quantity与selected字段
方法一
var _ = require('underscore'); Cart.findOneAndUpdate({ _id: req.body.cart._id, user: user }, _.pick(req.body.cart, 'quantity', 'selected'), { new: true }, function(err, updatedCart) { res.send( utils.json({ data: updatedCart }) ); } );
注:_.pick相当于
{ quantity: req.body.cart.quantity, selected: req.body.cart.selected }
方法二
var _ = require('underscore'); Cart.findOne({ _id: req.body.cart._id, user: user }, function(err, cart) { if (err) { console.log(err); } // 复制对象 _.extend(cart, req.body.cart); cart.save(function(err, updatedCart) { res.send( utils.json({ data: updatedCart }) ); }); } );
对比
第一种代码使用findOneAndUpdate只用了一步,更加简洁,适用于更新的字段少且非常明确的场景
第二种先findOne再对entity进行save操作,利用了underscore对象复制,面向整个对象操作更加灵活,适用于字段多且不确定的场景
结论
需求总是在变的,所以我一般采用第二种。
上面是我整理给大家的,希望今后会对大家有帮助。
相关文章:
Atas ialah kandungan terperinci 在mongoose中有关于更新对象的详细介绍. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Kemas kini Blizzard Battle.net terus tersekat pada 45%, bagaimana untuk menyelesaikannya? Baru-baru ini, ramai orang telah terperangkap pada bar kemajuan 45% apabila mengemas kini perisian Mereka masih akan tersekat selepas dimulakan semula beberapa kali Jadi bagaimana untuk menyelesaikan situasi ini? itu, tutorial perisian ini akan berkongsi langkah operasi, dengan harapan dapat membantu lebih ramai orang. Kemas kini Blizzard Battle.net terus tersekat pada 45%, bagaimana untuk menyelesaikannya 1. Pelanggan 1. Mula-mula, anda perlu mengesahkan bahawa klien anda adalah versi rasmi yang dimuat turun dari laman web rasmi. 2. Jika tidak, pengguna boleh memasuki laman web pelayan Asia untuk memuat turun. 3. Selepas memasukkan, klik Muat turun di penjuru kanan sebelah atas. Nota: Pastikan anda tidak memilih Bahasa Cina Ringkas semasa memasang.

Epic Seven telah disahkan dikemas kini secara berterusan pada jam 11 tengah hari pada 22 Februari. Kemas kini ini akan membawa kepada kita banyak aktiviti dan kandungan baharu, termasuk peningkatan dalam kadar pemanggilan terhad Leia dan Sweet Miracle, kemas kini kepada kumpulan kad misteri , Minggu kedua cerita sampingan khas Miracle Maid Kingdom telah bermula. Jadual kemas kini permainan mudah alih: The Seventh Epic akan dikemas kini pada 22 Februari: The Miracle Maid Kingdom akan dibuka untuk minggu kedua ※Peluang untuk memanggil "Leia" & "Sweet Miracle" terhad sudah habis! ■Masa Peluang Pemanggilan Terhad: -2024/02/22 (Khamis) 11:00 ~ 2024/03/07 (Khamis) 10:59 ■Atribut & Pekerjaan Watak: Atribut Semulajadi, Pahlawan ■Pengenalan Watak: Band Empat Orang sub-vokalis "Miracle Maid Kingdom" dan Bei

Selesai dalam satu minit: Cara mengemas kini versi pip, contoh kod khusus diperlukan Dengan perkembangan pesat Python, pip telah menjadi alat standard untuk pengurusan pakej Python. Walau bagaimanapun, seiring dengan berlalunya masa, versi pip sentiasa dikemas kini Untuk dapat menggunakan ciri terkini dan memperbaiki kemungkinan kelemahan keselamatan, adalah sangat penting untuk mengemas kini versi pip. Artikel ini akan menerangkan cara mengemas kini pip dengan cepat dalam satu minit dan memberikan contoh kod khusus. Pertama, kita perlu membuka tetingkap baris arahan. Dalam sistem Windows, anda boleh menggunakan

Lantern and Dungeons telah disahkan akan dikemas kini pada 29 Februari Selepas kemas kini, versi remastered Lantern and Dungeons akan dilancarkan, dan versi remaster juga akan dipautkan ke Legend of Nezha Versi remaster juga akan membawakan yang baharu profesion, dan pemain boleh terus menukar kerja, kandungan penjara juga akan diperluas, kawasan penjara baharu akan dibuka, dsb. Jadual kemas kini permainan mudah alih Lantern dan Dungeon dikemas kini pada 29 Februari: Versi terpakai ╳ Kandungan utama versi pautan "Legend of Nezha" Profesion baharu, mengapa anda dijemput untuk menukar kerja Pencahayaan lampu sebenarnya boleh menukar kerja Saya mendengar bahawa selepas bertukar kerja, pemegang tanglung juga boleh belajar banyak kemahiran yang menarik: Seluar Thai adalah panas! The Legend of Nezha akan datang bersama! Melangkah di atas roda panas, memegang bulatan langit dan bumi di tangan ♫ ~ Wira kecil dengan kebijaksanaan dan keberanian: Nezha dan Little Dragon Girl akan datang

Angular.js ialah platform JavaScript yang boleh diakses secara bebas untuk mencipta aplikasi dinamik. Ia membolehkan anda menyatakan pelbagai aspek aplikasi anda dengan cepat dan jelas dengan memanjangkan sintaks HTML sebagai bahasa templat. Angular.js menyediakan pelbagai alatan untuk membantu anda menulis, mengemas kini dan menguji kod anda. Selain itu, ia menyediakan banyak ciri seperti penghalaan dan pengurusan borang. Panduan ini akan membincangkan cara memasang Angular pada Ubuntu24. Mula-mula, anda perlu memasang Node.js. Node.js ialah persekitaran berjalan JavaScript berdasarkan enjin ChromeV8 yang membolehkan anda menjalankan kod JavaScript pada bahagian pelayan. Untuk berada di Ub

Komputer rakan mempunyai kesalahan sedemikian Apabila membuka "PC ini" dan fail pemacu C, ia akan menggesa "Explorer.EXE Windows tidak boleh mengakses peranti, laluan atau fail yang ditentukan. Anda mungkin tidak mempunyai kebenaran yang sesuai untuk mengakses projek. " Termasuk folder, fail, Komputer ini, Tong Kitar Semula, dsb., klik dua kali akan muncul tetingkap sedemikian, tetapi adalah perkara biasa untuk membukanya dengan mengklik kanan. Ini disebabkan oleh kemas kini sistem Jika anda juga menghadapi situasi ini, editor di bawah akan mengajar anda cara menyelesaikannya. 1. Buka editor pendaftaran Win+R dan masukkan regedit, atau klik kanan menu mula untuk menjalankan dan masukkan regedit 2. Cari registri "Computer\HKEY_CLASSES_ROOT\PackagedCom\ClassInd";

Jika komputer kami dipasang menggunakan sistem win10 dan sedia untuk dikemas kini kepada win102004, kemas kini kepada win10 versi 2004 yang muncul semasa kemas kini gagal dan menggesa kod ralat 0x80004002 Sistem. Masalah yang disebabkan oleh penyelesaian masalah boleh dibetulkan dalam arahan arahan. Untuk langkah penyelesaian terperinci, mari kita lihat apa yang dilakukan oleh editor ~ Bagaimana untuk menyelesaikan masalah kegagalan kemas kini versi win10 2004 0x80004002 Penyelesaian 1: "But bersih" untuk menghapuskan pengaruh perisian pihak ketiga: 1. Hentikan bukan teras operasi program (termasuk perisian anti-virus dan pengoptimuman pihak Ketiga yang pertama) 2. Jika keadaan mengizinkan, nyahpasang anti-virus pihak ketiga daripada peranti

Kad grafik MSI ialah jenama kad grafik arus perdana di pasaran Kami tahu bahawa kad grafik perlu memasang pemacu untuk mencapai prestasi dan memastikan keserasian. Jadi bagaimana untuk mengemas kini pemacu kad grafik MSI kepada versi terkini? Secara amnya, pemacu kad grafik MSI boleh dimuat turun dan dipasang dari tapak web rasmi Mari ketahui lebih lanjut di bawah. Kaedah kemas kini pemacu kad grafik: 1. Pertama, kami memasuki "laman web rasmi MSI". 2. Selepas memasukkan, klik butang "Cari" di sudut kanan atas dan masukkan model kad grafik anda. 3. Kemudian cari kad grafik yang sepadan dan klik pada halaman butiran. 4. Kemudian masukkan pilihan "Sokongan Teknikal" di atas. 5.Akhir sekali pergi ke "Pemandu & Muat Turun"
