본문 바로가기

전체 글14

[MongoDB] $exists 요약: 특정 필드가 존재하는 document를 모두 가져오고 싶을 때 사용 { a: 5, b: 5, c: null } { a: 3, b: null, c: 8 } { a: null, b: 3, c: 9 } { a: 1, b: 2, c: 3 } { a: 2, c: 5 } { a: 3, b: 2 } { a: 4 } { b: 2, c: 4 } { b: 2 } { c: 6 } 1. 사용법 위의 documents에서 qty 필드가 존재하는 모든 document를 선택합니다. db.records.find( { a: { $exists: true } } ) 결과는 다음과 같습니다. { a: 5, b: 5, c: null } { a: 3, b: null, c: 8 } { a: null, b: 3, c: 9 } { a: 1.. 2022. 7. 1.
[MongoDB] $not 요약: 지정된 operator 표현식과 일치하지 않는 모든 document를 가져옵니다. 1. inventory collection에서 "가격" 필드의 값이 1.99가 아닌 모든 document 를 선택합니다. ("가격" 필드가 없는 document 포함) db.inventory.find( { 가격: { $not: { $gt: 1.99 } } } ) $not은 다른 연산자에게만 영향을 미치며 필드 및 document에 독립적으로 접근할 수 없습니다. 하려면 $ne를 써야하죠! 출처: $eq — MongoDB Manual 2022. 6. 30.
[MongoDB] $and, $nor, $or 요약 - 배열로 주어지는 하나 이상의 표현식 모두가 참인 document를 모두 가져오고 싶을 때 $and 사용 - 배열로 주어지는 하나 이상의 표현식 모두가 거짓인 document를 모두 가져오고 싶을 때 $nor 사용 - 배열로 주어지는 둘 이상의 표현식 중 적어도 하나가 참인 document를 모두 가져오고 싶을 때 $or 사용 1. $and inventory collection에서 가격이 1.99와 같지 않고, 가격 필드가 존재하는 document를 모두 가져옵니다. db.inventory.find( { $and: [ { 가격: { $ne: 1.99 } }, { 가격: { $exists: true } } ] } ) 아래 구문으로 축약할 수도 있습니다. 훨씬 간결해보이네요. db.inventory... 2022. 6. 30.
[MongoDB] $in, $nin 요약 - 이 값들 중 하나라도 포함하는 document가 있으면 모두 가져와줘 => $in - 이 값들 중 하나라도 포함하면 제외하고 모두 가져와줘 => $nin - 각각 $eq와 $ne의 확장으로 볼 수 있겠습니다. 우선 inventory collection에 아래 documents를 저장한 것으로 가정합니다. db.inventory.insertMany( [ { "item": "펜", "수량": 350, "태그": [ "학교", "회사" ] }, { "item": "지우개", "수량": 15, "태그": [ "학교", "집" ] }, { "item": "지도", "태그": [ "회사", "창고" ] }, { "item": "책", "수량": 5, "태그": [ "학교", "창고", "집" ] } ] ).. 2022. 6. 30.
[MongoDB] $gt, $gte, $lt, $lte 요약: 특정 필드의 값이 지정된 값보다 큰(또는 작은) document를 모두 가져오고 싶을 때 - $gt (큰) - $gte (크거나 같은) - $lt (작은) - $lt (작거나 같은) 우선 아래 문서를 inventory collection에 추가했다고 가정합니다. db.inventory.insertMany( [ { "상품명": "사과", "수량": 30, "배송정보": { "업체명": "쿠팡이츠", "배송비": 3 } }, { "상품명": "배", "수량": 50, "배송정보": { "업체명": "배민", "배송비": 4 } }, { "상품명": "바나나", "수량": 10, "배송정보": { "업체명": "마켓컬리", "배송비": 1 } } ] ) 1. 위의 document에서 "수량" 필드의 값.. 2022. 6. 30.
[MongoDB] $eq, $ne 요약 - 특정 필드 값을 가지는 document를 모두 가져오고 싶을 때 $eq를 사용 - 특정 필드 값을 가지는 document를 빼고 모두 가져오고 싶을 때 $ne를 사용 { _id: 1, item: { name: "ab", code: "123" }, qty: 15, tags: [ "A", "B", "C" ] } { _id: 2, item: { name: "cd", code: "123" }, qty: 20, tags: [ "B" ] } { _id: 3, item: { name: "ij", code: "456" }, qty: 25, tags: [ "A", "B" ] } { _id: 4, item: { name: "xy", code: "456" }, qty: 30, tags: [ "B", "A" ] } .. 2022. 6. 30.