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

MongoDB에서 배열 요소를 필터링하는 방법은 무엇입니까?

<시간/>

$setIntersection 연산자를 집계 프레임워크와 함께 사용하여 MongoDB에서 배열 요소를 필터링할 수 있습니다. 먼저 문서로 컬렉션을 만들어 보겠습니다. −

> db.filterArrayElementsDemo.insertOne( { "Scores": [10,45,67,78,90,98,99,92] } );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cd2d582b64f4b851c3a13c8")
}

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

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

이것은 다음과 같은 출력을 생성합니다 -

{
   "_id" : ObjectId("5cd2d582b64f4b851c3a13c8"),
   "Scores" : [
      10,
      45,
      67,
      78,
      90,
      98,
      99,
      92
   ]
}

다음은 배열 요소를 필터링하는 쿼리입니다 -

> db.filterArrayElementsDemo.aggregate([
...    { $match : {
...          _id: ObjectId("5cd2d582b64f4b851c3a13c8")
...    }},
...    { $project: {
...       Scores: {
...          $setIntersection: ['$Scores', [10,98,99]]
...       }
...    }}
... ]);

이것은 다음과 같은 출력을 생성합니다 -

{ "_id" : ObjectId("5cd2d582b64f4b851c3a13c8"), "Scores" : [ 10, 98, 99 ] }