Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
$min
Baru dari versi 8.0.1.
$minNOperator di Amazon DocumentDB mengembalikan N nilai terkecil. Ketika digunakan sebagai akumulator dalam $group tahap, ia mengembalikan array dari N nilai minimum di setiap grup. Ketika digunakan sebagai operator ekspresi array, ia mengembalikan N elemen minimum dari sebuah array.
Parameter
-
input: Ekspresi yang menyelesaikan ke array atau bidang dari mana untuk mengembalikannnilai minimum. -
n: Ekspresi yang diselesaikan ke bilangan bulat positif yang menentukan berapa banyak nilai minimum yang akan dikembalikan.
Perilaku
Perilaku operator ekspresi array
-
Anda tidak dapat menentukan nilai
nkurang dari1. -
$minNmenyaringnullnilai yang ditemukan dalaminputarray. -
Jika yang
nditentukan lebih besar dari atau sama dengan jumlah elemen dalaminputarray,$minNmengembalikan semua elemen dalaminputarray. -
Jika
inputdiselesaikan ke nilai non-array, kesalahan operasi agregasi. -
Jika
inputberisi elemen numerik dan string, elemen numerik diurutkan sebelum elemen string sesuai dengan urutan perbandingan BSON.
Perilaku akumulator
-
Ketika digunakan sebagai akumulator,
nharus berupa ekspresi integral positif yang merupakan konstanta atau tergantung pada_idnilai untuk$group. -
$minNmenyaring nilai nol dan hilang. -
Jika grup berisi lebih sedikit dari
nelemen,$minNmengembalikan semua elemen dalam grup. -
$minNmembandingkan data input mengikuti urutan perbandingan BSON untuk menentukan jenis keluaran yang sesuai. Ketika data input berisi beberapa tipe data, jenis$minNkeluaran adalah yang terendah dalam urutan perbandingan.
Pemesanan keluaran
$minNmengembalikan nilai tanpa urutan tertentu. Jika menjamin urutan pengurutan tertentu adalah persyaratan, gunakan sebagai $bottomN gantinya, atau bungkus hasilnya dengan$sortArray.
Contoh (MongoDB Shell)
Contoh berikut menunjukkan cara menggunakan $minN akumulator untuk mengambil dua skor terendah untuk setiap subjek.
Buat dokumen sampel
db.scores.insertMany([ { subject: "math", score: 85 }, { subject: "math", score: 72 }, { subject: "math", score: 93 }, { subject: "math", score: 68 }, { subject: "science", score: 90 }, { subject: "science", score: 78 }, { subject: "science", score: 65 }, { subject: "science", score: 88 } ]);
Contoh kueri
db.scores.aggregate([ { $group: { _id: "$subject", lowestTwo: { $minN: { input: "$score", n: 2 } } } } ]);
Keluaran
[
{ "_id": "math", "lowestTwo": [72, 68] },
{ "_id": "science", "lowestTwo": [78, 65] }
]
Contoh penggunaan ekspresi (MongoDB Shell)
$minNOperator juga dapat digunakan sebagai ekspresi dalam $project tahap untuk mengembalikan N elemen terkecil dari bidang array.
Buat dokumen sampel
db.readings.insertMany([ { _id: 1, sensor: "A", values: [45, 12, 78, 3, 56] }, { _id: 2, sensor: "B", values: [90, 23, 67, 11, 44] } ]);
Contoh kueri
db.readings.aggregate([ { $project: { lowestThree: { $minN: { input: "$values", n: 3 } } }} ]);
Keluaran
[
{ "_id": 1, "lowestThree": [45, 12, 3] },
{ "_id": 2, "lowestThree": [44, 23, 11] }
]
Contoh kode
Untuk melihat contoh kode untuk menggunakan $minN operator, pilih tab untuk bahasa yang ingin Anda gunakan. Contoh berikut menunjukkan penggunaan akumulator (in$group) dan penggunaan ekspresi (in$project):