다음을 통해 공유


$mod(쿼리 연산자)

$mod 쿼리 연산자는 나누기 작업의 나머지 부분을 기준으로 문서를 필터링하는 데 사용됩니다. 이 연산자는 숫자로 나눌 수 있는 값을 찾거나 특정 나머지를 갖는 것과 같은 수학적 조건을 포함하는 쿼리를 허용합니다. Azure Cosmos DB for MongoDB(vCore)에서 지원됩니다.

구문

{ 
  <field>: { $mod: [ <divisor>, <remainder> ] } 
}
  • <field>: 모듈러스 작업을 수행할 필드입니다.
  • <divisor>: 필드 값을 나눌 숫자입니다.
  • <remainder>: 나누기 후 예상되는 나머지입니다.

예시

예제 1: 값이 3으로 sales 나눌 수 있는 문서 찾기

db.collection.find({ "sales": { "$mod": [3, 0] } })

다음은 필드 값이 3으로 나눌 수 있는 sales 모든 문서(즉, 나머지는 0)를 검색하는 예제입니다. 다음과 같은 출력이 생성됩니다.

[
  { "_id": 1, "sales": 9, "product": "A" },
  { "_id": 2, "sales": 15, "product": "B" },
  { "_id": 3, "sales": 21, "product": "C" }
]

예제 2: 5로 나눈 값이 나머지 2인 문서 totalSales 찾기

db.collection.find({ "totalSales": { "$mod": [5, 2] } })

이 쿼리는 필드를 5로 나눌 때 나머지 2가 있는 totalSales 문서를 필터링합니다. 다음과 같은 출력이 생성됩니다.

[
  { "_id": 4, "totalSales": 7, "product": "X" },
  { "_id": 5, "totalSales": 12, "product": "Y" },
  { "_id": 6, "totalSales": 17, "product": "Z" }
]

예제 3: $mod 사용하여 중첩 필드 쿼리

db.collection.find({ "sales.monthly.total": { "$mod": [4, 1] } })

이 예제에서는 연산자를 사용하여 중첩 필드(sales.monthly.total)를 쿼리하는 방법을 보여 줍니다 $mod . 다음과 같은 출력이 생성됩니다.

[
  { "_id": 7, "sales": { "monthly": { "total": 5 } }, "category": "Electronics" },
  { "_id": 8, "sales": { "monthly": { "total": 9 } }, "category": "Clothing" }
]

제한 사항

  • $mod 연산자는 숫자 필드에만 적용됩니다. 숫자가 아닌 필드에 이 값을 사용하면 오류가 발생합니다.
  • 잘못된 작업으로 이어지기 때문에 수수가 0이 아닌지 확인합니다.