데이터베이스/MongoDB

배열 연산자

haventmetyou 2023. 12. 28. 13:50
# 데이터 입력
db.inventory2.insertMany([
  { item: 'journal', qty: 25, tags: ['blank', 'red'] },
  { item: 'notebook', qty: 50, tags: ['red', 'blank'] },
  { item: 'paper', qty: 100, tags: ['red', 'blank', 'plain']},
  { item: 'planner', qty: 75, tags: ['blank', 'red'] },
  { item: 'postcard', qty: 45, tags: ['blue']}])

 

# red 문자열이 들어있는 도큐먼트 모두 검색됨
db.inventory2.find({tags: 'red'}, {_id: 0})

{
  item: 'journal',
  qty: 25,
  tags: [
    'blank',
    'red'
  ]
}
{
  item: 'notebook',
  qty: 50,
  tags: [
    'red',
    'blank'
  ]
}
{
  item: 'paper',
  qty: 100,
  tags: [
    'red',
    'blank',
    'plain'
  ]
}
{
  item: 'planner',
  qty: 75,
  tags: [
    'blank',
    'red'
  ]
}

 

# blank와 red 두 개의 요소를 다 가지고 있는 도큐먼트 불러오기
db.inventory2.find({tags: ['red', 'blank']}, {_id: false})

{
  item: 'notebook',
  qty: 50,
  tags: [
    'red',
    'blank'
  ]
}

쿼리 필드의 값으로 배열을 갖게 되어 내용과 순서가 정확하게 일치하는 도큐먼트를 불러오게 됨

 

배열 연산자

operator 설명
$all 순서와 상관없이 배열 안의 요소가 모두 포함되면 선택
$elemMatch $elemMatch 조건과 맞는 배열 속 요소를 가진 Document 선택
$size 해당 배열의 크기가 같은 Document를 선택