336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
MongoDB 배열 쿼리
@ 배열 쿼리
{
"_id" : ObjectId("556e67ef35316c8fcfee226e"),
“fruits” : [
“banana”, “apple”, “peach”
]
}
위와 같은 배열이 있다고 할 때 아래와 같이 배열에 쿼리를 할 수 있다
- fruits 값에 banana가 있는 것 찾아내기
- db.c.find( { “fruits” : “banana” } )
- fruits 값에 banana, peach 가 있는 것 찾아내기
- db.c.find( { “fruits” : { “$all” : [“banana”, “peach”] } } )
- $size
- fruits 값이 3인 것 찾아내기
- db.c.find( { “fruits” : { “$size” : 3 } } )
배열 쿼리 실습하기 위해서 데이터를 우선 넣는다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
var post = {
"subject" : "MongoDB Test",
"description" : "Hello",
"author" : "sslee",
"tags" : [
"java", "mongoDB", "mongo", "Mongo", "bigData"
] , "replies" : [
{
"author" : "mcjang",
"description" : "^^"
},
{
"author" : "jhnam",
"description" : "--"
}
]
}
|
cs |
Mongo Shell에 붙여 넣는다
@ 배열 쿼리 실습
- tags 안에 mongo가 있는 것
- db.post.find( { "tags" : "mongo" } );
- 실행 결과
- tags 안에 java와 mongo가 있는 것
- db.post.find( { "tags" : [ "java", "mongo" ] } );
- 실행 결과
- 위와 같이 적어주면 결과가 나오지 않는데 그것은 java와 mongo 인 것을 찾기 때문이다
- 앞에 "$all"을 적어주면 된다
- db.post.find( { "tags" : { "$all" : [ "java", "mongo" ] } } );
- 실행 결과
- jhnam이 쓴 게시글을 가져와라
- 우리가 해온 방식이라면 아래와 같이 검색을 할 것이다
- db.post.find( { "replies" : { "author" : "jhnam" } } );
- 실행 결과
- 결과가 나오지 않았다
- 배열에서 문서 형태를 찾으려면 author만 적어주는게 아니라 description까지 찾아서 검색을 해야 한다
- db.post.find( { "replies" : { "author" : "jhnam", "description" : "--" } } );
- 실행 결과
- 문서의 전체 내용을 모르는데 특정 내용을 알고 있을 때 검색을 하는 키워드가 있다 $elemMatch
- db.post.find( { "replies" : { "$elemMatch" : { "author" : "jhnam" } } } );
- 실행 결과
'[ Developer ] > MongoDB' 카테고리의 다른 글
[MongoDB] 몽고디비 Limit으로 쿼리 결과 제한하기 (0) | 2016.06.28 |
---|---|
[MongoDB] 몽고디비 $slice 쿼리 (0) | 2016.06.27 |
[MongoDB] 몽고디비 논리 연산 쿼리 (0) | 2016.06.26 |
[MongoDB] 몽고디비 숫자 비교 연산 쿼리 (0) | 2016.06.25 |
[MongoDB] Function 이용해 Data 넣기 (0) | 2016.06.24 |