Maison > Article > interface Web > Deux façons de mettre à jour des objets dans mangouste
Mongoose est un outil de modèle objet qui effectue des opérations pratiques sur mongodb dans l'environnement asynchrone node.js. Récemment, lors de l'utilisation de mongoose, j'ai découvert un point de connaissance auquel je n'avais pas prêté attention auparavant. Cet article présente principalement deux choses. objets de mise à jour mangouste.Cette méthode sera comparée en détail à travers un exemple de code pour donner à chacun une meilleure référence pour l'apprentissage. Les amis dans le besoin peuvent s'y référer. J'espère que cela aide tout le monde.
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 à :
.Décrire le scénario
Mettre à jour la quantité du panier et vérifier l'état
Logique métier
Interroger l'objet panier de l'utilisateur actuel, Cart, et mettre à jour la quantité et les champs sélectionnés passé par le front end
Mé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 type de code utilise findOneAndUpdate en une seule étape, ce qui est plus concis et adapté aux scénarios où les champs mis à jour sont peu nombreux et très clairs
Le deuxième type de code trouve d'abordOne et puis enregistre l'entité, en utilisant la copie d'objet de soulignement, pour L'ensemble du fonctionnement de l'objet est plus flexible et adapté aux scénarios avec des champs nombreux et incertains
Conclusion
Les exigences changent constamment, j'utilise donc généralement le deuxième méthode.
Recommandations associées :
Explication détaillée de la méthode d'implémentation des requêtes de champ virtuel de Mongoose,
Installation et utilisation de Mongoose avec Node Opération .js Tutoriel de base de MongoDB_node.js
Node.js Pilote MongoDB Utilisation de base de Mongoose tutoriel_node.js
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!