0

各コレクションのスキーマを使用してMongoDB内にJSVを保存し、MapReduceを実行してドキュメントを検証することは可能ですか? 無効なドキュメントをコレクションに挿入すると、手動で修正できますか?

私は外部アプリケーションの介入をできるだけ少なくしたいと考えています。理想的には、MapReduces がダーティ ドキュメントを毎日処理する cron であり、これらのドキュメントが無効である理由を手動で調査します。

4

1 に答える 1

1

Map / Reduceは、元のコレクションのドキュメントを変更しないため、スキーマのコンプライアンスをチェックするための適切なアプローチではない可能性があります。そのため、ドキュメントに検証済みであることを示すフラグを設定することはできず、cronを実行するたびに再検証される可能性があります。

推奨されるアプローチ:

  • ドキュメントにインデックス付きvalidatedフィールドを追加します。スキーマをバージョン管理する場合は、おそらくこれは数値になります。
  • 可能であれば、すべてのドキュメントを挿入時に検証する必要があります
  • 現在のスキーマと一致するように検証されていないすべてのドキュメントを検索validatedし、JSVの結果に基づいてフィールドを更新するスクリプトを作成します
  • 特定の検証エラーを別のコレクションまたは場合によってはサブドキュメントに保存します(エラーレポートを追加するとドキュメントが過度に移動する場合は、手動でパディングすることを検討してください)。
于 2012-06-29T06:59:10.537 に答える