최근 몽구스를 사용하면서 이전에 주목하지 않았던 지식 포인트를 발견했습니다. 다음 글에서는 주로 몽구스에서 객체를 업데이트하는 두 가지 방법을 샘플 코드를 통해 자세히 비교하여 제공하고 있습니다. 누구나 공부할 수 있는 더 좋은 참고서가 필요한 친구들이 참고할 수 있습니다.
머리말
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 속성 바인딩을 구현하는 방법
위 내용은 몽구스의 객체 업데이트에 대한 자세한 소개가 있습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!