$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이 아닌지 확인합니다.
관련 콘텐츠
- MongoDB에서 Azure Cosmos DB for MongoDB(vCore)로 마이그레이션하기 위한 옵션 검토
- MongoDB와의 기능 호환성에 대해 자세히 알아보기