Computer >> 컴퓨터 >  >> 프로그래밍 >> MongoDB

MongoDB $slice 연산자로 배열의 마지막 두 값 가져오기

MongoDB에서 배열 필드의 마지막 두 값을 가져오려면 $slice 연산자를 사용하면 됩니다. $slice에 음수 값을 지정하면 배열 끝에서부터 해당 개수만큼의 요소를 반환합니다.

샘플 컬렉션 생성하기

먼저 문서가 포함된 컬렉션을 생성해 보겠습니다.

> db.demo173.insertOne({"ListOfValues":[10,40,100,560,700,900]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e383a4f9e4f06af551997e4")
}

컬렉션 문서 조회하기

find() 메서드를 사용하면 컬렉션의 모든 문서를 확인할 수 있습니다.

> db.demo173.find().pretty();

위 쿼리를 실행하면 다음과 같은 결과가 출력됩니다.

{
   "_id" : ObjectId("5e383a4f9e4f06af551997e4"),
   "ListOfValues" : [ 10, 40, 100, 560, 700, 900 ]
}

마지막 두 값 가져오는 쿼리

배열의 마지막 두 값을 가져오려면 프로젝션 단계에서 $slice 연산자에 -2를 지정하면 됩니다. 음수 값은 배열의 끝에서부터 요소를 계산한다는 의미입니다.

> db.demo173.find({}, { "ListOfValues": { "$slice": -2 } } );

실행 결과

위 쿼리를 실행하면 다음과 같이 배열의 마지막 두 값인 700900만 반환되는 것을 확인할 수 있습니다.

{ "_id" : ObjectId("5e383a4f9e4f06af551997e4"), "ListOfValues" : [ 700, 900 ] }

참고 사항

$slice 연산자는 다양한 방식으로 활용할 수 있습니다. 양수를 지정하면 배열의 처음부터, 음수를 지정하면 배열의 끝에서부터 요소를 가져옵니다. 또한 [건너뛸 개수, 반환할 개수] 형태로 지정하여 원하는 위치의 요소를 추출할 수도 있습니다.