몽구스의 객체 업데이트에 대한 자세한 소개가 있습니다.

亚连
풀어 주다: 2018-06-19 17:35:55
원래의
1485명이 탐색했습니다.

최근 몽구스를 사용하면서 이전에 주목하지 않았던 지식 포인트를 발견했습니다. 다음 글에서는 주로 몽구스에서 객체를 업데이트하는 두 가지 방법을 샘플 코드를 통해 자세히 비교하여 제공하고 있습니다. 누구나 공부할 수 있는 더 좋은 참고서가 필요한 친구들이 참고할 수 있습니다.

머리말

Mongoose는 node.js 비동기 환경에서 mongodb를 편리하게 운영하기 위한 객체 모델 도구입니다

이를 사용하려면 먼저 node.js와 mongodb를 설치해야 합니다. 설치 및 설치에 관해서는 mongodb 작업 소개는 //www.jb51.net/article/80296.htm

Demonstration

시나리오 설명

장바구니 수량 업데이트 및 확인을 참조하세요. status

비즈니스 로직

현재 사용자의 장바구니 개체 Cart를 쿼리하고 프런트 엔드에서 전달된 수량 및 선택한 필드를 업데이트합니다.

메서드 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
  })
 );
 }
);
로그인 후 복사

참고: _.pick은 동일합니다.

 {
 quantity: req.body.cart.quantity,
 selected: req.body.cart.selected
 }
로그인 후 복사

방법 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
  })
  );
 });
 }
);
로그인 후 복사

Comparison

첫 번째 코드는 한 단계에서만 findOneAndUpdate를 사용하는데, 이는 더 간결하고 업데이트된 필드가 적고 매우 명확한 시나리오에 적합합니다

두 번째 방법은 먼저 One을 찾은 다음 엔터티에 대한 작업을 수행합니다. 저장 작업은 밑줄 개체 복사를 사용하므로 전체 개체 작업이 더 유연해지고 불확실한 필드가 많은 시나리오에 적합합니다.

결론

요구 사항은 항상 다음과 같습니다. 바뀌기 때문에 일반적으로 두 번째 방법을 사용합니다.

위 내용은 모두를 위해 제가 정리한 내용입니다. 앞으로 모든 사람에게 도움이 되기를 바랍니다.

관련 기사:

Angular4에서 HTML 속성 바인딩을 구현하는 방법

JS를 사용하여 구구단을 작성하는 방법

JS를 사용하여 닭 100마리 구매 문제 계산

위 내용은 몽구스의 객체 업데이트에 대한 자세한 소개가 있습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿