Overview
このページでは、Diango MongoDBバックエンドがサポートしていない機能のリストを見つけることができます。また、一般提供(GA)および GA 後リリースで現在計画されている機能を見つけることもできます。ユーザーのリクエストに基づいて、これらの今後の機能を優先します。機能のサポートは が JIRA 問題を作成することでリクエストできます。
機能の制限
このセクションでは、サポートされていない次のタイプの Diango およびMongoDB の機能について学習できます。
トランザクションマネジメント
クエリの実行では、Diango と MongoDB のデフォルトの動作である オートコミットモードが使用されます。各クエリは、データベースにすぐにコミットされます。
Dpango のトランザクション管理 API はサポートされていません。
モデルの制限
Dlango は、わずかに異なるモデルが同じコレクションを共有する MongoDB の多形パターンをサポートしていません。
Indexes
Dlango MongoDBバックエンドは次のインデックス機能をサポートしていません。
Diango Indexes APIを使用した
$vectorSearchと$searchインデックスの作成Diango Indexes APIによる地理空間インデックスの作成
モデル作成後に
EmbeddedModelFieldsでインデックスを更新しています
フィールド
Dpango MongoDBバックエンドでは、指定されるフィールド型に次の制限があります。
ArrayFieldArrayField多形データはサポートされていません。ArrayField内にネストされたEmbeddedModelField値はサポートされていません。
EmbeddedModelFieldEmbeddedModelスキーマの変更は作成後に登録されません。埋め込みドキュメントは Diango 外部キーを取ることができません。
任意の埋め込みモデルフィールドまたは型なしの埋め込みモデルフィールドはサポートされていません。すべてのフィールドは
EmbeddedModelクラスから派生する必要があります。
JSONFieldDlango MongoDBバックエンドは、 JSONとSQL
null値を区別できません。Value(None, JSONField())またはisnullルックアップを使用するクエリでは、 JSONとSQLnull値の両方が返されます。Q(value__foo="bar")などのQオブジェクトを含む一部のクエリは、通常どおりに動作しない可能性があります。None値をフィルタリングすると、フィールドが存在しないオブジェクトが誤って返されます。
DateTimeFieldDateTimeField値のマイクロ秒粒度はサポートされていません。
DurationFieldDurationFieldは、マイクロ秒ではなく、ミリ秒を保存します。
ForeignKey可能であれば、
$lookup操作を使用しないように、ForeignKeyフィールドではなくEmbeddedModelFieldを使用する必要があります。EmbeddedModelFieldはMongoDB埋め込みドキュメントをエミュレートし、パフォーマンスがForeignKeyフィールドよりも向上します。 操作を削減する方法の詳細については、Atlas ドキュメントの「 $lookup 操作の削減 」ガイドを参照してください。$lookupForeignKeyフィールドでの CASCADE 削除 のパフォーマンスは、EmbeddedModelFieldを使用する場合ほどパフォーマンスが良くありません。
次のフィールド型は Diango MongoDBバックエンドでは 使用できません 。
GeneratedFieldAutoField(BigAutoFieldとSmallAutoFieldを含む)
クエリの制限
Dlango MongoDBバックエンドは次の QuerySet APIメソッドをサポートしていません。
prefetch_related()extra()
Dlango MongoDBバックエンドでは、複数のコレクションにまたがる QuerySet.delete() クエリと update() クエリをサポートしていません。
地理空間クエリ
Dlango MongoDBバックエンドは、次の地理空間クエリ機能をサポートしていません。
GeoDjangoMongoDB固有の地理空間クエリ用の Dlango lookup 演算子
集計演算子
Dlango MongoDBバックエンドには、 MongoDB集計フレームワークのカスタム Diangoフィールドルックアップは含まれていません。代わりに、raw_aggregate() メソッドを使用してください。「未加工データベースクエリの実行」ガイドを参照してください。
データベース関数
Dlango MongoDBバックエンドは次のデータベース関数をサポートしていません。
サポートされていない管理コマンド
次の django-admin コマンドはサポートされていません。
createcachetable(「キャッシュ」を参照してください)inspectdb
移行の制限
Dlango MongoDBバックエンドは、次の移行機能をサポートしていません。
強制されたスキーマ検証。アプリケーションでスキーマ検証を強制する方法については、 MongoDB Serverマニュアルの「 JSON スキーマ検証のガイドを参照してください。
migrate --fake-initialオプション。
キャッシュ
データベース キャッシュでは、 MongoDBSQL。createcachecollectioncreatecachetable
次に、Diango の組み込みデータベースキャッシュバックエンド(django.core.cache.backends.db.DatabaseCache)ではなく、django_mongodb_backend.cache.MongoDBCacheバックエンドを使用する必要があります。
パフォーマンス
エンジニアリングチームは、Diango MongoDBバックエンドのパブリック プレビュー リリースの機能開発を優先しています。このため、特定のワークロードではパフォーマンスの制限が生じる場合があります。パフォーマンスの問題が発生した場合は、問題とヘルプガイドに示されているように報告してください。
一般提供版リリース機能
このセクションでは、GA および GA 後のMongoDBバックエンド リリースで導入される可能性が高い次のタイプの Diango とMongoDB の機能について学習できます。
MongoDB の機能
GA リリースでは、次のMongoDB機能をサポートする予定です。
Dango API を使用した、ベクトル検索、Atlas Search、および地理空間インデックスのプログラムによる管理
Dpango API を使用したベクトル検索、Atlas Search、および地理空間クエリ
Queryable Encryptionとクライアント側フィールドレベルの暗号化
データベース トランザクション
今後の GA 以降のリリースでは、次のMongoDB機能をサポートする予定です。
大規模なファイルストレージ用のGridFS
データモニタリングのための変更ストリーム
スキーマ検証
Tip
このセクションで述べられたMongoDB の機能について詳しくは、次のリソースを参照してください。
Atlas ドキュメントの Atlas ベクトル検索
Atlas ドキュメントの Atlas Search
MongoDB Serverマニュアルの「 地理空間クエリ 」を参照してください。
MongoDB Serverマニュアルの「 使用中の暗号化 」
MongoDB ServerマニュアルのGridFS
MongoDB Serverマニュアルの「 Change Streams 」
モデルの特徴
GA リリースでは、次のモデル機能をサポートする予定です。
埋め込みドキュメントの配列
多形埋め込みドキュメントと配列
埋め込みモデルスキーマへの変更を適用して
EmbeddedModelField値コレクション内の複数のモデル
埋め込みモデルにおける形式表現の改善
将来の GA 以降のリリースでは、BSONRegExpデータ型のカスタム モデルフィールドを追加する予定です。
管理コマンドの機能
EmbeddedModelField の直列化サポート(Diango の dumpdata および loaddata マネジメント コマンド)は、GA リリースによって追加されます。
サードパーティ ライブラリ
GA リリースまでに、次のサードパーティ ライブラリとの互換性をテストする予定です。