Récemment, lors de l'utilisation de mangouste, j'ai découvert un point de connaissance auquel je n'avais pas prêté attention auparavant. L'article suivant vous présente principalement les deux méthodes de mise à jour d'objets dans mangouste et compare les deux méthodes en détail à travers un exemple de code. Pour donner à chacun une meilleure référence pour apprendre, les amis dans le besoin peuvent s'y référer.
Avant-propos
Mongoose est un outil de modèle d'objet pour un fonctionnement pratique de mongodb dans l'environnement asynchrone node.js
Donc Pour l'utiliser, vous devez d'abord installer node.js et mongodb. Pour une introduction à l'installation et au fonctionnement de mongodb, veuillez vous référer à : //www.jb51.net/article/80296.htm
Démo
Décrire le scénario
Mettre à jour le shopping quantité du panier et vérifier l'étatLogique métier
Interrogez l'objet panier de l'utilisateur actuel, Cart, et mettez à jour la quantité et les champs sélectionnés transmis par le frontalMéthode 1
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 }) ); } );
Remarque : _.pick est équivalent à
{ quantity: req.body.cart.quantity, selected: req.body.cart.selected }
Méthode 2
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 }) ); }); } );
Comparaison
Le premier code utilise findOneAndUpdate en une seule étape, et est plus simple, adapté aux scénarios où les champs mis à jour sont peu nombreux et très clairs La deuxième méthode trouve d'abord One, puis enregistre l'entité. Elle utilise la copie d'objet de soulignement et est plus flexible. pour l'ensemble de l'opération de l'objet. Il convient aux situations où il y a de nombreux champs et aucun scénario déterminéConclusion
Les exigences changent toujours, j'utilise donc généralement le second. option. J'ai compilé ce qui précède pour vous, j'espère que cela vous sera utile à l'avenir. Articles connexes :Comment implémenter la liaison d'attributs HTML dans Angular4
Comment écrire la table de multiplication en utilisant JS
Utiliser JS pour calculer le problème de l'achat de 100 poulets
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!