Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Operator $mod
kueri digunakan untuk memfilter dokumen berdasarkan sisa operasi pembagian. Operator ini memungkinkan kueri yang melibatkan kondisi matematika, seperti menemukan nilai yang dapat dibagi dengan angka atau memiliki sisa tertentu. Ini didukung di Azure Cosmos DB untuk MongoDB (vCore).
Sintaksis
{
<field>: { $mod: [ <divisor>, <remainder> ] }
}
-
<field>
: Bidang tempat melakukan operasi modulus. -
<divisor>
: Angka untuk membagi nilai bidang. -
<remainder>
: Sisa yang diharapkan setelah pembagian.
Contoh
Contoh 1: Temukan dokumen di mana sales
nilai dapat dibagi dengan 3
db.collection.find({ "sales": { "$mod": [3, 0] } })
Contoh ini mengambil semua dokumen di mana sales
nilai bidang dapat dibagi dengan 3 (yaitu, sisanya adalah 0). Ini akan menghasilkan output berikut:
[
{ "_id": 1, "sales": 9, "product": "A" },
{ "_id": 2, "sales": 15, "product": "B" },
{ "_id": 3, "sales": 21, "product": "C" }
]
Contoh 2: Temukan dokumen di mana totalSales
nilai memiliki sisa 2 jika dibagi 5
db.collection.find({ "totalSales": { "$mod": [5, 2] } })
Kueri ini memfilter dokumen di totalSales
mana bidang memiliki sisa 2 jika dibagi 5. Ini akan menghasilkan output berikut:
[
{ "_id": 4, "totalSales": 7, "product": "X" },
{ "_id": 5, "totalSales": 12, "product": "Y" },
{ "_id": 6, "totalSales": 17, "product": "Z" }
]
Contoh 3: Mengkueri bidang berlapis menggunakan $mod
db.collection.find({ "sales.monthly.total": { "$mod": [4, 1] } })
Contoh ini menunjukkan kueri bidang berlapis (sales.monthly.total
) dengan $mod
operator. Ini akan menghasilkan output berikut:
[
{ "_id": 7, "sales": { "monthly": { "total": 5 } }, "category": "Electronics" },
{ "_id": 8, "sales": { "monthly": { "total": 9 } }, "category": "Clothing" }
]
Pertimbangan
- Jika kurang dari dua nilai ditentukan dalam array untuk operator $mod, kesalahan dilemparkan oleh server yang menunjukkan tidak cukup argumen yang diteruskan.
- Jika lebih dari dua nilai ditentukan dalam array untuk operator $mod, kesalahan dilemparkan oleh server yang menunjukkan terlalu banyak argumen yang diteruskan.
Keterbatasan
- Operator
$mod
hanya diterapkan ke bidang numerik. Menggunakannya pada bidang non-numerik mengakibatkan kesalahan. - Pastikan bahwa pembavis bukan nol, karena mengarah ke operasi yang tidak valid.
Konten terkait
- Meninjau opsi untuk Migrasi dari MongoDB ke Azure Cosmos DB untuk MongoDB (vCore)
- Baca selengkapnya tentang Kompatibilitas fitur dengan MongoDB