본문으로 바로가기

projection 연산자

category DB, ORM/🍃 mongoDB (shell) 2020. 7. 24. 06:49

대 전제 : 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/}})

 

 


darren, dev blog
블로그 이미지 DarrenKwonDev 님의 블로그
VISITOR 오늘 / 전체