뭐든 즐기면서 ;)

MongoDB $filter 본문

카테고리 없음

MongoDB $filter

Tada.*+ 2023. 6. 30. 19:31
728x90

$filter key value 형식 설명

{
  $filter: {
    input: <배열 필드>,
    as: <임시 변수 이름>,
    cond: <조건 표현식>
  }
}

예제

// 1번 예제
db.books.aggregate(
  {
    $project: {
      _id: 0,
      title: 1,
      authors: {
        $filter: {
          input: "$authors",
          as: "author",
          cond: { $eq: ["$$author", "John"] }
        }
      }
    }
  }
);

// 2번 예제
db.workspace.aggregate(
    {
        $match: { 'projects.jobs.job_id': ObjectId('649eacfc0000000000b14232') }
    },
    {
        $project: { _id: 0, projects: 1 }
    },
    {
        $unwind: '$projects'
    },{
        $match: { 'projects.jobs.job_id': ObjectId('649eacfc0000000000b14232') }
    }, {
        $project: {
            job: {
                $filter: {
                    input: '$projects.jobs'
                    ,as: 'job'
                    ,cond: { $eq: ['$$job.job_id', ObjectId('649eacfc0000000000b14232')]}
                }
            }
        }
    });
728x90
Comments