Services or capabilities described in Amazon Web Services documentation might vary by Region. To see the differences applicable to the China Regions,
see Getting Started with Amazon Web Services in China
(PDF).
$mod
The $mod operator is an arithmetic operator that performs a modulo operation on a number. It returns the remainder of dividing one number by another. This operator is commonly used to determine if a number is odd or even, or to distribute items into a finite number of groups.
Parameters
Example (MongoDB Shell)
This example demonstrates how to use the $mod operator to determine the number of leftover widgets when shipping in packages of 100.
Create sample documents
db.widgets.insertMany([
{ "_id" : 1, "widget" : "A", "count" : 80372 },
{ "_id" : 2, "widget" : "B", "count" : 409282 },
{ "_id" : 3, "widget" : "C", "count" : 60739 }
])
Query example
db.widgets.aggregate([
{ $addFields: { leftOver: { $mod: [ "$count", 100 ] } } }
])
Output
[
{ "_id" : 1, "widget" : "A", "count" : 80372, "leftOver" : 72 },
{ "_id" : 2, "widget" : "B", "count" : 409282, "leftOver" : 82 },
{ "_id" : 3, "widget" : "C", "count" : 60739, "leftOver" : 39 }
]
The output shows the remainder of the count divided by 100 for each document, which represents the number of leftover widgets when shipping in packages of 100.
Code examples
To view a code example for using the $mod command, choose the tab for the language that you want to use:
- Node.js
-
const { MongoClient } = require('mongodb');
async function main() {
const client = await MongoClient.connect('mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false');
const db = client.db('test');
const widgets = db.collection('widgets');
await widgets.insertMany([
{ "_id" : 1, "widget" : "A", "count" : 80372 },
{ "_id" : 2, "widget" : "B", "count" : 409282 },
{ "_id" : 3, "widget" : "C", "count" : 60739 }
]);
const result = await widgets.aggregate([
{ $addFields: { leftOver: { $mod: [ "$count", 100 ] } } }
]).toArray();
console.log(result);
client.close();
}
main();
- Python
-
from pymongo import MongoClient
client = MongoClient('mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false')
db = client['test']
widgets = db['widgets']
widgets.insert_many([
{ "_id" : 1, "widget" : "A", "count" : 80372 },
{ "_id" : 2, "widget" : "B", "count" : 409282 },
{ "_id" : 3, "widget" : "C", "count" : 60739 }
])
result = list(widgets.aggregate([
{ "$addFields": { "leftOver": { "$mod": [ "$count", 100 ] } } }
]))
print(result)
client.close()