Maison  >  Article  >  interface Web  >  Il y a une introduction détaillée à la mise à jour des objets dans mangouste

Il y a une introduction détaillée à la mise à jour des objets dans mangouste

亚连
亚连original
2018-06-19 17:35:551462parcourir

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'état

Logique 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 frontal

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 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!

Déclaration:
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