MongoDB CRUD 작업 문서 쿼리하는 방법 Part-1

MongoDB CRUD 작업  문서 쿼리하는 방법 Part-1
Cozy CodingPosted On Jul 10, 20244 min read

쿼리 문서와 중첩/내장

쿼리 문서
몽고디비(MongoDB)에서 find() 메서드를 사용하여 문서를 쿼리합니다.

예시 문서:

 {
    item: 'journal',
    qty: 25,
    size: { h: 14, w: 21, uom: 'cm' },
    status: 'A'
  }

db.inventory.find('')

db.inventory.find({})

//retrieves all documents in collection.

db.inventory.find('field:value')

db.inventory.find({ status: 'D' });
// 모든 문서를 검색합니다. sales 컬렉션에서,
// 상태가 "D"와 동일한 경우. 

db.inventory.find('field1:value1,field2:value2,..') AND 연산

db.inventory.find({ status: 'D', qty: '30'});

// 위는 AND 연산입니다,
// 컬렉션 내 모든 문서를 검색합니다.
// 여기서 상태가 "D"이고 수량이 "30"인 경우.

점 표기법을 사용한 중첩 필드 쿼리

{
    item: 'journal',
    qty: 25,
    size: { h: 14, w: 21, uom: 'cm' },
    status: 'A'
}
db.inventory.find({'size.uom': 'in'})
// retrieves all documents in collection,
// where value size.uom equals "in".

Note: The structure of nested fields is important to avoid unpredictable behavior. Make sure the nested fields are in order.

db.inventory.find({
size: { w: 21, h: 14, uom: 'cm' }
});

올바른 사용법:

db.inventory.find({
size: { h: 14, w: 21, uom: 'cm' }
});

몽고디비 비교 연산자

$eq는 지정된 값과 같은 값을 일치합니다.

$gt는 지정된 값보다 큰 값을 일치시킵니다.

$gte는 지정된 값보다 크거나 같은 값을 일치시킵니다.

$in은 배열에 지정된 값 중 어느 것이든 일치합니다.

$lt은 지정된 값보다 작은 값을 찾습니다.

$lte는 지정된 값보다 작거나 같은 값을 찾습니다.

$ne은 지정된 값과 다른 모든 값을 찾습니다.

$nin은 배열에 지정된 값 중 어느 것도 포함되지 않은 값을 찾습니다.

예시 문서:

{
    item: 'journal',
    qty: 25,
    size: { h: 14, w: 21, uom: 'cm' },
    status: 'A'
}

비교 연산자

Equal — $eq

db.inventory.find({qty: {$eq: 45}})
// 혹은 둘 다 같은 명령어입니다
db.inventory.find({qty: 45})
// qty가 45와 동일한 값을 갖는 모든 문서를 반환합니다.

Greater than — $gt

db.inventory.find({qty: {$gt: 45}})
// qty 값이 45보다 큰 모든 문서를 반환합니다.
// 만약 qty에 100, 45, 55, 60, 75 값이 있다면
// 결과는 100, 55, 60, 75가 됩니다.

크거나 같음 — $gte

db.inventory.find(qty: {$gte: 45})\
// 컬렉션에서 45보다 크거나 같은 모든 문서를 검색합니다.
// 만약 qty에 값이 100, 45, 55, 60, 75가 있다면
// 결과는 100, 45, 55, 60, 75가 됩니다.

작거나 같음 — $lt

db.inventory.find(qty: {$lt: 45})
// 컬렉션에서 45보다 작은 모든 문서를 검색합니다.
// 만약 qty에 값이 100, 45, 55, 60, 75가 있다면
// 결과는 45가 됩니다.

서는 MongoDB 쿼리 표현식입니다.

작거나 같음 — $lte

db.inventory.find(qty: {$lte: 45})
// 45 이하의 모든 문서를 검색합니다.
// 만약 qty에 100, 45, 55, 60, 75가 있으면
// 결과는 45이 출력됩니다.

배열 안 값과 일치 — $in

db.inventory.find(qty: {$in: [45, 100] })
// 배열 안에 지정된 값과 일치하는 모든 문서를 검색합니다.
// 만약 qty에 100, 45, 55, 60, 75가 있으면
// 결과는 45와 100이 출력됩니다.

배열 안에 있는 값과 일치하지 않는 항목 찾기 — $nin

db.inventory.find({ qty: { $nin: [45, 100] } })
// 배열에 지정된 값 중 일치하는 모든 문서를 검색합니다.
// qty 값이 100, 45, 55, 60, 75인 경우
// 55, 60, 75이 출력됩니다.

값이 특정 값과 일치하지 않는 항목 찾기 — $ne

db.inventory.find({ qty: { $ne: 100 } })
// 특정 값과 일치하지 않는 모든 값에 해당하는 문서를 검색합니다.
// qty 값이 100, 45, 55, 60, 75인 경우
// 45, 55, 60, 75가 출력됩니다.

비교 연산자에 대한 자세한 내용은 Part 2를 클릭하세요.