[과제] MongoDB _02
💜 문제 💜
새롭게 인벤토리 콜렉션을 추가하자.
[
{ "item": "journal", "qty": 25, "size": { "h": 14, "w": 21, "uom": "cm" }, "status": "A" },
{ "item": "notebook", "qty": 50, "size": { "h": 8.5, "w": 11, "uom": "in" }, "status": "A" },
{ "item": "paper", "qty": 100, "size": { "h": 8.5, "w": 11, "uom": "in" }, "status": "D" },
{ "item": "planner", "qty": 75, "size": { "h": 22.85, "w": 30, "uom": "cm" }, "status": "D" },
{ "item": "postcard", "qty": 45, "size": { "h": 10, "w": 15.25, "uom": "cm" }, "status": "A" }
]
이 콜렉션에서
status 필드값이 "A"이고 qty 필드값이 50보다 작은 모든 도큐먼트를 검색한 다음, size 필드의 h 프로퍼티 값을 "big" 이라는 문자열로 변경해보자!
위 문제의 조건은 다음과 같다.
(여기서도 updateMany 메서드를 사용해야 한다.)
-
status 필드값이 "A"이고 qty 필드값이 50보다 작은 모든 도큐먼트를 검색한다.
-
size 필드의 h 프로퍼티 값을 "big"이라는 문자열로 변경한다.
일단 첫번째 조건부터 충족시키기로 했다.
find()를 써보기로 했다. 일단 status 필드값이 "A"이며 동시에 qty 값이 50 아래인 도큐먼트들을 찾았다.
db.inventory.find( {status: "A", qty: { $lt: 50 } })
결과화면
굿.
이제 이 도큐먼트들을 바꿔야한다.
저번에 썼던 updateMany 를 기억하는가?
db.inventory.updateMany(
... { },
... [
... { $set: { status: ["$size.w","$size.h"]}},
... ]
... )
2번째 줄 중괄호{} 속에는 원래 검색하려는 쿼리 조건이 들어가야한다.
cmd에 다음과 같이 입력했다.
db.inventory.updateMany(
... {status: "A", qty: { $lt: 50 }},
... [
... {$set : {"size.h":"big"}},
... ]
... )
프로퍼티 인자에 접근하려면 위와 같이 점(.)으로 선택하면 된다. 반드시 "size.h" 처럼 큰 따옴표로 감싸줘야 한다.
성공적으로 변경된 것을 확인할 수 있다.
Author And Source
이 문제에 관하여([과제] MongoDB _02), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@goyo88/과제-MongoDB-02저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)