>  Q&A  >  본문

$Match를 사용하여 지난 N년 간의 MongoDB 데이터 필터링

저는 MongoDB를 처음 사용합니다. match를 사용하여 지난 2년 간의 기록만 가져오고 싶습니다. 하드 코딩 없이 이를 수행할 수 있는 방법이 있습니까?

예를 들어 연도는 2023년입니다. 그런데 내 컬렉션에 기록된 가장 최근 연도는 2021년이에요. 올해가 아닌 지난 2년간의 내 컬렉션 기록을 가져오고 싶습니다. 따라서 범위는 2021-2023 대신 2019-2021, 이 됩니다.

연도를 문자열로 하드코딩하지 않고 이를 수행할 수 있는 방법이 있나요?

이 정보를 얻어서 다음 단계에 활용하고 싶어요

현재 저는 이것을 하드코딩했습니다

{
        $match: {
          fechaOrden: {
            $gte: ISODate("2018-01-01"),
            $lt: ISODate("2020-02-01"),
          }, 
        },
      },
    ] ```

P粉211273535P粉211273535264일 전498

모든 응답(1)나는 대답할 것이다

  • P粉146080556

    P粉1460805562024-01-30 13:18:01

    $setWindowFields来抓取文档近2年的记录。然后,使用 $sort + $limit를 사용하여 전체 컬렉션에서 최신 기록을 찾고 지난 2년간의 관련 기록을 반환할 수 있습니다.

    으아아아

    몽고 놀이터

    회신하다
    0
  • 취소회신하다