このエンジンがどのように機能するかは完全にはわかりませんが、シナリオを設定させてください。次のようなモデルクラスを使用したDjango-Mongoプロジェクトがあります。
class BaseModel(models.Model):
created_at = models.DateTimeField(null=False, auto_now_add=True)
modified_at = models.DateTimeField(null=False, auto_now=True)
たくさんの基本モデルを作成しましたが、プロジェクトのすべてがうまく機能し、多くのデータを取得できました。その後、プロジェクトが大きくなり、BaseModel を拡張する必要があります。突然次のようになります。
class BaseModel(models.Model):
created_at = models.DateTimeField(null=False, auto_now_add=True)
modified_at = models.DateTimeField(null=False, auto_now=True)
active = models.BooleanField(default=True)
したがって、mongo を使用すると、データベースに触れることなくこれを変更できることがわかりますが、次に行うことは、次のようなクエリを実行することです。
BaseModel.objects.filter(active=True)
デフォルトを使用する必要があるが、まだアクセスされていない古いレコードがこのクエリに表示されることを期待する必要がありますか? または、探している値がデフォルトと一致することを認識するために、クエリ エンジンに固有の操作を行う必要がありますか?