대 전제 : db.collection.find({condition}, {projection}, {option})
특정 필드만 가져오도록 pojection 연산자를 사용해보자.
$slice 배열 필드에 주어진 범위
$elemMatch 배열 필드의 조건에 맞는 것만
$ 첫번째 요소만
객체의 경우 점(.)을 통해서 가져오면 된다. 문제는 배열이다.
// {name: {first: "태현", last: "김"}}
db.collection.find({}, {"name.first": 1})
$slice
// {item: "book", tags: ["red", "blank"]}
// 잘못됨. tags의 첫번째 인자[0]가 아니라 tags 배열의 0이란 원소를 출력하라는 의미
db.collection.find({}, {"tags.0": 1})
// tags 배열의 [0], [1]을 출력하라 (앞에서 부터 2개를 출력하라)
db.collection.find({}, {tags: {$slice: 2}})
// tags 배열의 [2:3] 을 출력하라
db.collection.find({}, {tags: {$slice: [2, 3]}})
$elemMatch
// 특정 조건에 부합하는 필드만 출력하라
db.collection.find({}, {$elemMatch: {$regex: /^b/}})
'DB, ORM > 🍃 mongoDB (shell)' 카테고리의 다른 글
집계 명령어 활용하기 (3) Aggregate 파이프라인 (i) 👨🏫 기본적인 stage (0) | 2020.07.24 |
---|---|
집계 명령어 활용하기 (1) 몽고 DB의 아키텍쳐와 집계의 효율성 (0) | 2020.07.24 |
쿼리 작성하기 (논리/비교 연산자, 문자열 연산자, 배열 연산자) (0) | 2020.07.24 |
원자성을 유지를 위한 Transaction(트랜잭션) + WriteConcern/ReadConcern (0) | 2020.07.24 |
Robo 3T 설치 및 활용 (0) | 2020.06.08 |