MongoDB 의 조건 조회 와 정렬 을 자세히 설명 합 니 다.
검색 의 기본 형식 은 db.collection.find({조건})입 니 다.그 중에서 조건 은 선택 할 수 있 습 니 다.MySQL 의 WHERE 조건 과 같 습 니 다.예 는 다음 과 같다.
//
db.collection.find({});
//
db.collection.find({key: value});
//
db.users.find({nickname: ' '});
조건 부 조합$and,$or,$not 를 사용 하여 조합 조건 을 설정 할 수 있 습 니 다.
// AND
db.collection.find({
$and: [
{key1: value1}, {key2: value2}
]
});
// OR
db.collection.find({
$or: [
{key1: value1}, {key2: value2}
]
});
// NOT
db.collection.find(
{key: {$not: { }}
);
예 를 들 어 아래 users 데이터 세트:
[
{nickname: ' ', score: 90, gender: 'male'},
{nickname: ' ', score: 98, gender: 'female'},
{nickname: 'Tom', score: 76, gender: 'male'}
]
검색 점수 가 90 점 또는 76 점 인 사용자:
db.users.find({
$or: [
{score: 90}, {score: 76}
]
});
검색 성별 이 male 이 아 닌 사용자 와 검색 점수 가 80 점 이상 인 사용자:
db.users.find({
gender: {$not: {$eq: 'male'}}
});
db.users.find({
score: {$not: {$lt: 80}}
});
그 중에서$eq 는 같은 조건 이 고$lt 는 조건 보다 작 습 니 다.조건 은 끼 워 넣 어서 사용 할 수 있 습 니 다.예 를 들 어 and 와 and 와 or 끼 워 넣 기 는(a||b)&&(c||d)를 표시 합 니 다.형식 은 다음 과 같 습 니 다.
// AND OR
db.collection.find({
$and: [
{$or: [{key1: value1}, {key2: value2}]},
{$or: [{key3: value1}, {key4: value2}]},
]
});
// nickename , 90 76
db.users.find({
$and: [
{$or: [{nickname: ' '}, {nickname: ' '}]},
{$or: [{score: 90}, {score: 76}]}
]
});
// nickname 90, nickname 76
db.users.find({
$or: [
{$and: [{nickname: ' '}, {score: 90}]},
{$and: [{nickname: ' '}, {score: 76}]}
]
});
// nickname , 80
db.users.find({
$and: [
{nickname: ' '},
{score: {$not:{$lt: 80}}}
]
});
비교 조작 부호MongoDB 에 서 는 다음 과 같은 비교 연산 자 를 제공 합 니 다.비교 연산 자의 형식 은{key:{$op:value}입 니 다.
$eq:같은 연산 자,즉 a==b;$lt:a>b 보다 크다
IN 검색
in 조회 의 형식 은 비교 조작 부호 와 유사 하지만 대응 하 는 값 은 수조,즉
db.collection.find({key: {$in: [...]}});
예 를 들 어 점수 가 90,76 인 사용 자 를 찾 아야 합 니 다.
db.users.find({score: {$in: [76, 90]}});
in 조회 도 다른 조건 과 조합 할 수 있 습 니 다.예 를 들 어 and 조회:
db.users.find({
$and: [
{score: {$in: [76, 90]}},
{gender: 'male'}
]
});
결과 항목 수 반환 과 데이터 건 너 뛰 기 제한find 방법 은 모든 조건 에 맞 는 데 이 터 를 찾 을 수 있 기 때문에 데이터 세트 가 많 을 때 속도 가 느 리 고 대량의 디스크 I/O 가 발생 할 수 있 습 니 다.데이터 가 1 개 밖 에 없 는 것 을 확인 할 때 findOne 을 사용 할 수 있 습 니 다.검색 항목 수 를 제한 하려 면 limit 이나 skip 을 사용 할 수 있 습 니 다.limit 은 지 정 된 수량 을 조회 한 후 결 과 를 되 돌려 주 는 것 이 고,skip 은 앞에서 지 정 된 수량 을 뛰 어 넘 은 결과 입 니 다.
// n
db.collection.find({key: value}).limit(n);
// : 80 3
db.users.find({score: {$gt: 80}}).limit(3);
// , n
db.collection.find({key: value}).skip(n);
// : 80 , 3
db.users.find({score: {$gt: 80}}).skip(3);
정렬정렬 사용 형식 은 다음 과 같 습 니 다:
db.collection.find({ }).sort({key: 1});
그 중에서 1 은 오름차 순 을 나타 내 고-1 은 내림차 순 을 나타 낸다.예 를 들 어 우 리 는 점수 내림차 순 으로 정렬 해 야 한다.
db.users.find().sort({score: -1});
총결산이 편 에 서 는 반환 개수 와 정렬 을 제한 하 는 MongoDB 의 조건 조회 조작 을 소개 한다.이 를 통 해 알 수 있 듯 이 MongoDB 의 조작 은 문법 과 SQL 이 다 르 지만 모두 해당 하 는 기능 보조 조회 가 있어 조회 에 도 매우 편리 하 다.
이상 은 MongoDB 의 조건 조회 와 정렬 에 대한 상세 한 내용 입 니 다.MongoDB 의 조건 조회 와 정렬 에 관 한 자 료 는 저희 의 다른 관련 글 을 주목 하 시기 바 랍 니 다!