$minN (最小値 N アキュムレータ)
最終更新:2026-10-09
$minN (最小値 N アキュムレータ)
$minN は、グループ内のフィールドの下位 N 個の個別の最小値を配列で返すアキュムレータで、$maxN と対称で、MongoDB 5.2 以降で利用できます。ソート指定は不要で、結果の順序は保証されません。グループごとの下位 N 統計に向きます。
| カテゴリ | アキュムレータ |
|---|---|
| MongoDB バージョン | 5.2+ |
| 例の言語 | mongosh(シェル) |
📝 構文
{ $group: { _id: <key>, minN: { $minN: { input: <expression>, n: <number> } } } }
戻り値:グループ内の下位 N 個の異なる値の配列
▶ 例
以下のコマンドをローカルの mongosh で実行してください(mongod が起動済みである必要があります):
// $minN: クラスごとの個別のスコア下位 3 件
db.scores.aggregate([
{ $group: { _id: '$class', lowScores: { $minN: { input: '$score', n: 3 } } } }
])
出力:
{ "_id": "A", "lowScores": [41, 55, 60] }
📌 注意事項
- MongoDB 5.2 以降が必要
- 自動で重複を除去する
- $bottomN と違い、$minN は値を返すだけでソート結果のドキュメントではない
🏷️ 関連タグ
💡 関連ケース
さらなる実践ケースを近日公開予定。
📚 関連チュートリアル
❓ よくある質問
Q$minN と $bottomN の違いは?
A$minN は下位 N 個の個別の値を取ります。$bottomN は sortBy 規則による末尾 N ドキュメントを取ります。
Q結果は重複除去されますか?
Aはい。重複は 1 つに潰れます。
Qn を 0 にできますか?
Aはい。空の配列を返します。