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 의 조건 조회 와 정렬 에 관 한 자 료 는 저희 의 다른 관련 글 을 주목 하 시기 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Heroku에서 mLab add-on 종료로 Mongo DB atlas로 마이그레이션Heroku의 Add-on으로 제공된 mLab MongoDB가 2020/11/10 종료됩니다. 요 전날 mLab이 MongoDB, Inc.에 인수되었기 때문에 동반됩니다. errbit 등을 Heroku에서 호스팅하는...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.