– 쿼리 조건절1. “$lt” ( SQL의 < 연산 )
> db.user.find( { “age” : { “$lt” : 20 } } )
: user Collection에서 나이가 20세 보다 작은 사용자를 찾아라
2. “$lte” ( SQL의 <= 연산 )
>db.user.find( { “age” : { “$lte” : 20 } } )
: user Collection에서 나이가 20세와 같거나 작은 사용자를 찾아라
3. “$gt” ( SQL의 > 연산 )
>db.user.find( { “age” : { “$gt” : 20 } } )
: user Collection에서 나이가 20세 보다 큰 사용자를 찾아라
4. “$gte” ( SQL의 >= 연산 )
>db.user.find( “age” : { “$gte” : 20 } } )
: user Collection에서 나이가 20세와 같거나 큰 사용자를 찾아라
– OR 쿼리
1.”$in” ( 하나의 키에 다양한 값들과 비교 하는 쿼리 )
> db.user.find( { “no” : { “$in” : [ 1 , 10 , 30 ] } } )
: user Collection에 “no”가 1 , 10 , 30 인 사용자를 찾아라
> db.user.find( { “user_id” : { “$in” : [ 1234 , “austin” ] } )
: user Collection에 “user_id”가 1234 이거나 austin인 사용자를 찾아라
: 위의 예시는 점진적으로 user_id를 번호 대신 사용자 이름으로 변경 이전하는 경우 유용하게 사용할수 있다.
2. “$nin” ( “$in”쿼리의 반대 이다 해당 값들이 일치하지 않은경우를 쿼리 )
>db.user.find( { “no” : { “$nin” : [ 1 , 10 , 30 ] } } )
: user Collection에 “no”가 1 , 10 , 30 이 아닌 모든 사용자를 찾아라
3. Array 에서 찾기
내장문서에 하나 이상의 키에 대해 조건과 일치 여부를 확인할때
{
“_id” : ObjectId(“507256d3e4b050361f0ed128”),
“SENDER_ID” : NumberLong(9),
“USER_ARRAY” : [
{
“RECEIVER_ID” : “9”,
“USER_ACTIVE” : 0,
“IS_BLOCK” : 1
},
{
“RECEIVER_ID” : “16”,
“USER_ACTIVE” : 0,
“IS_BLOCK” : 1
},
{
“RECEIVER_ID” : “10”,
“USER_ACTIVE” : 0,
“IS_BLOCK” : 1
}
],
“IS_ACTIVE” : 1,
“IS_VOICE” : 2,
“REG_DATE” : NumberLong(“1349670611157”)
}
위 필드에서 RECEIVER_ID : 9 이고 USER_ACTIVE : 0인 것을 찾는 쿼리
db.collectionName.find( { USER_ARRAY: { $elemMatch:{ RECEIVER_ID : “16” , USER_ACTIVE:0 } } } );