Maison > interface Web > js tutoriel > Deux façons de mettre à jour des objets dans mangouste

Deux façons de mettre à jour des objets dans mangouste

小云云
Libérer: 2017-12-20 09:23:34
original
2202 Les gens l'ont consulté

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
  })
 );
 }
);
Copier après la connexion

Remarque : _.pick est équivalent à

 {
 quantity: req.body.cart.quantity,
 selected: req.body.cart.selected
 }
Copier après la connexion

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
  })
  );
 });
 }
);
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal