validate() (コレクションの整合性検証)
最終更新:2026-10-09
validate() (コレクションの整合性検証)
validate() はコレクションの構造的な整合性をチェックします。例: `db.users.validate({ full: true })`。コレクションの BSON ドキュメントとインデックスをスキャンし、破損やチェック失敗を報告します。トラブルシューティングやアップグレード前によく実行されます。full: true は時間と引き換えにチェックを深めます。結果の valid フィールドは、データが正常な場合に true になります。
| カテゴリ | インデックスと管理 |
|---|---|
| MongoDB バージョン | 1.0+ |
| 例の言語 | mongosh(シェル) |
📝 構文
db.<collection>.validate({ full: <bool> })
⚙️ パラメータ
| full | 任意。true はインデックスを含むより詳細なスキャンを実行します。既定は false。 |
|---|
戻り値:valid、ns、nrecords などを持つ検証レポート。
▶ 例
以下のコマンドをローカルの mongosh で実行してください(mongod が起動済みである必要があります):
// validate: users コレクションの整合性をチェックする
const report = db.users.validate({ full: false })
print('valid: ' + report.valid)
出力:
valid: true
📌 注意事項
- 巨大なコレクションでの実行はリソースを消費する。オフピークを推奨
- full: true は時間がかかるがより徹底的
- 破損時はデータファイルを手編集せず、バックアップから復元する
🏷️ 関連タグ
💡 関連ケース
📚 関連チュートリアル
❓ よくある質問
Qvalidate の full オプションは何をしますか?
Afull: true はインデックスと内部構造の深いチェックを追加します。より徹底的ですが、顕著に遅くなります。
Qvalidate の結果の valid フィールドとは?
Aデータが検証を通過したかを報告します。true は正常、false は破損を示します。
Q検証で破損が見つかったらどうすればいいですか?
Aすぐに書き込みを停止し、最新のバックアップから復元して、ディスク/ハードウェアの健全性を調べます。