Computer >> 컴퓨터 >  >> 프로그램 작성 >> MongoDB

MongoDB에서 배열 하위 요소를 어떻게 제한합니까?

<시간/>

$slice 연산자를 사용하여 배열을 제한할 수 있습니다. 문서로 컬렉션을 만들어 봅시다. 다음은 쿼리입니다.

> db.limitAnArrayDemo.insertOne(
...    {
...       _id: 101,
...       "PlayerName": "Bob",
...       "PlayerDetails": {Age:23,isStudent:true},
...       "PlayerGameScores": [234,5767,58,67,78,90,1002,576,68,45,23,45,678,89,78 ]
...    }
... );
{ "acknowledged" : true, "insertedId" : 101 }

다음은 find() 메서드를 사용하여 컬렉션의 모든 문서를 표시하는 쿼리입니다.

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

그러면 다음과 같은 출력이 생성됩니다.

{
   "_id" : 101,
   "PlayerName" : "Bob",
   "PlayerDetails" : {
      "Age" : 23,
      "isStudent" : true
   },
   "PlayerGameScores" : [
      234,
      5767,
      58,
      67,
      78,
      90,
      1002,
      576,
      68,
      45,
      23,
      45,
      678,
      89,
      78
   ]
}

다음은 MongoDB에서 배열 하위 요소를 제한하는 쿼리입니다. 아래 쿼리는 마지막 요소에서 10개 요소만 표시합니다.

> db.limitAnArrayDemo.find({}, {PlayerName:1, PlayerDetails: 1, PlayerGameScores:{$slice: -10}}).pretty();

다음은 10 PlayerGameScores를 표시하는 출력입니다.

{
   "_id" : 101,
   "PlayerName" : "Bob",
   "PlayerDetails" : {
      "Age" : 23,
      "isStudent" : true
   },
   "PlayerGameScores" : [
      90,
      1002,
      576,
      68,
      45,
      23,
      45,
      678,
      89,
      78
   ]
}