$sample (ランダムサンプル)
最終更新:2026-10-09
$sample (ランダムサンプル)
$sample は、指定した数のドキュメントをランダムに選択します — サンプリング分析、テストデータ、ランダムピックに便利です。コレクション全体をスキャンしない場合があり、ランダム性も完全に均一ではありません。近似のランダムサンプルとして扱いましょう。出力順もランダムです。
| カテゴリ | コアステージ |
|---|---|
| MongoDB バージョン | 1.0+ |
| 例の言語 | mongosh(シェル) |
📝 構文
{ $sample: { size: <positive integer> } }
⚙️ パラメータ
| size | サンプリングするドキュメント数。正の整数である必要があります。 |
|---|
戻り値:ランダムに抽出されたドキュメントストリーム
▶ 例
以下のコマンドをローカルの mongosh で実行してください(mongod が起動済みである必要があります):
// $sample: ランダムに 5 人のユーザーを選ぶ
db.users.aggregate([
{ $sample: { size: 5 } }
])
出力:
// 実行ごとに結果が変わる場合がある
📌 注意事項
- サンプリングは厳密には均一でなく、実行ごとに結果が変わる
- size は正の整数でなければならない
- $limit と違い、選択はランダムで順序も予測できない
🏷️ 関連タグ
💡 関連ケース
さらなる実践ケースを近日公開予定。
📚 関連チュートリアル
❓ よくある質問
Q$sample は完全にランダムですか?
A厳密には均一ではありません。近似サンプリングやテスト向けの疑似ランダムな仕組みを使います。
Q$sample と $limit の違いは?
A$limit はパイプライン順の最初の N 件を取ります。$sample は順序の保証なしに N 件をランダムに選びます。
Q$sample は $match の後に使えますか?
Aはい。$sample は通常のステージなので、フィルター後の結果からサンプリングできます。