...
Embedded Documents 검색
- embedded Document란 auther Field처럼 Document 안 배열 형태로 있는 Document 를 말한다.
$elemMatch
- $elemMatch는 조건이 배열 안의 요소와 일치하는 필드를 선택합니다.
db.book.find({
"auther":{
$elemMatch: {"name":"park"} // auther배열객체 들 중에서 {"name":"park"} 검색.
}
})
일반 배열 검색
db.book.find({"language":"eng"})
// Embedded Document가 아니고 일반 배열일 경우 바로 접근하면 된다.
$all
- $all 쿼리 안에 있는 모든 값을 포함하는 배열을 값으로 가진 태그를 선택합니다.
- 아래의 배열이 예에서 값1, 값2 등등 모든 값을 가지고 있어야합니다.
db.book.find({language: {$all: ['eng', 'kor']}})
// language배열이 'eng', 'kor' 원소 모두 가지고 있을 경우
$size
- $size는 말 그대로 배열의 length가 값과 일치하는 필드를 선택합니다.
db.book.find({language: { $size:3 }})
일반 객체 검색
- 객체의 내부에 접근하듯이 .(점)으로 내부 속성을 지목하면 됩니다.
- 대신 따옴표로 묶어줘야 에러가 발생하지 않습니다.
db.book.find("seller.name":"saramin")
// Embedded Document가 아니고 Key/Field일 경우도 .형태로 접근 가능
Reference
https://www.zerocho.com/category/MongoDB/post/579b4f02062e76a002648af8
인용한 부분에 있어 만일 누락된 출처가 있다면 반드시 알려주시면 감사하겠습니다
이 글이 좋으셨다면 구독 & 좋아요
여러분의 구독과 좋아요는
저자에게 큰 힘이 됩니다.