Mongoose는 node.js 비동기 환경에서 mongodb에 대해 편리한 작업을 수행하는 객체 모델 도구입니다. 최근 mongoose를 사용하면서 이전에 주목하지 않았던 지식 포인트를 발견했습니다. 이번 글에서는 주로 두 가지 방법을 소개합니다. mongoose.에서 객체를 업데이트하는 동안, 두 가지 방법을 샘플 코드를 통해 자세히 비교하여 학습이 필요한 모든 사람에게 더 나은 참고 자료를 제공합니다. 그것이 모두에게 도움이 되기를 바랍니다.
이를 사용하려면 먼저 node.js와 mongodb를 설치해야 합니다. mongodb 설치 및 운영에 대한 소개는 다음을 참조하세요.
시나리오 설명
장바구니 수량 업데이트 및 확인 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를 사용하는 첫 번째 코드는 한 단계만 수행하므로 업데이트된 필드가 적고 매우 명확한 시나리오에 더 간결하고 적합합니다. 두 번째 방법은 먼저 findOne을 사용한 다음 엔터티를 저장하는 것입니다. , 이는 전체 개체 작업을 보다 유연하게 만들고 많은 필드와 불확실성이 있는 시나리오에 적합합니다
결론
요구 사항은 항상 변하기 때문에 일반적으로 두 번째 옵션을 사용합니다.
관련 권장 사항:
위 내용은 몽구스에서 객체를 업데이트하는 두 가지 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!