12-20 00:23
Notice
Recent Posts
Recent Comments
관리 메뉴

Scientific Computing & Data Science

[MongoDB] Query / $slice 본문

Data Science/MongoDB

[MongoDB] Query / $slice

cinema4dr12 2014. 2. 1. 22:27

by Geol Choi | 

이번 글에서는 "$slice" 오퍼레이터에 대해 알아 보도록 하겠다.

"$slice"는 특정 key의 array 아이템들 중 일부분을 추출하는데 사용된다.

가령, 다음과 같이 아이템이 있다고 하자.

> db.food.drop()
> db.food.insert({"fruit": ["apple", "orange", "plum", "banana", "peach", "mango", "pineapple", "grape", "melon", "water melon", "cherry", "kiwi", "strawberry"]})


"fruit" 중 처음 다섯개의 아이템을 추출하려면 다음과 같은 입력한다.

> db.food.find( {}, { fruit: { $slice: 5 } } )
{ "_id" : ObjectId("52ece5ebf97299c19188c2da"), "fruit" : [  "apple",  "orange",  "plum",  "banana",  "peach" ] }


반대로 마지막 다섯개의 아이템을 추출하려면 "$slice" 값을 5대신 -5로 입력한다.

> db.food.find( {}, { fruit: { $slice: -5 } } )
{ "_id" : ObjectId("52ece5ebf97299c19188c2da"), "fruit" : [  "melon",  "water melon",  "cherry",  "kiwi",  "strawberry" ] }


이번에는 "skip & limit"에 대해 알아보자. 때때로 몇가지 아이템을 스킵한 후 아이템을 추출할 필요가 있는 경우가 있다. 다음을 입력해 보자.

> db.food.findOne()
{
        "_id" : ObjectId("52ece5ebf97299c19188c2da"),
        "fruit" : [
                "apple",
                "orange",
                "plum",
                "banana",
                "peach",
                "mango",
                "pineapple",
                "grape",
                "melon",
                "water melon",
                "cherry",
                "kiwi",
                "strawberry"
        ]
}


위는 과일 이름을 순서대로 잘 볼 수 있기 위해 입력한 것이다. 처음 3개의 아이템을 스킵하고 5개의 아이템을 추출하면 다음과 같다:

> db.food.findOne( {}, { fruit: { $slice: [3, 5] } } )
{
        "_id" : ObjectId("52ece5ebf97299c19188c2da"),
        "fruit" : [
                "banana",
                "peach",
                "mango",
                "pineapple",
                "grape"
        ]
}


마찬가지로 뒤에서부터 7개의 아이템을 스킵하고 그 위치로부터 2개의 아이템을 추출하면 다음과 같이 입력한다:

> db.food.findOne( {}, { fruit: { $slice: [-7, 2] } } )
{
        "_id" : ObjectId("52ece5ebf97299c19188c2da"),
        "fruit" : [
                "pineapple",
                "grape"
        ]
}

즉, 뒤에서부터 7번째 위치로 이동한 후(fruit: "pineapple") 이 위치로부터 2개의 아이템(fruit: ["pineapple", "grape"])을 선택한다.

'Data Science > MongoDB' 카테고리의 다른 글

[MongoDB] Query / $where  (0) 2014.02.04
[MongoDB] Query / Querying Embedded Documents  (0) 2014.02.02
[MongoDB] Query / $size  (1) 2014.02.01
[MongoDB] Query / $all  (0) 2014.02.01
[MongoDB] Query / find  (0) 2014.02.01
Comments