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バックエンドでは、指定されるフィールド型に次の制限があります。
ArrayField
ArrayField
多形データはサポートされていません。ArrayField
内にネストされたEmbeddedModelField
値はサポートされていません。
EmbeddedModelField
EmbeddedModel
スキーマの変更は作成後に登録されません。埋め込みドキュメントは Diango 外部キーを取ることができません。
任意の埋め込みモデルフィールドまたは型なしの埋め込みモデルフィールドはサポートされていません。すべてのフィールドは
EmbeddedModel
クラスから派生する必要があります。
JSONField
Dlango MongoDBバックエンドは、 JSONとSQL
null
値を区別できません。Value(None, JSONField())
またはisnull
ルックアップを使用するクエリでは、 JSONとSQLnull
値の両方が返されます。Q(value__foo="bar")
などのQ
オブジェクトを含む一部のクエリは、通常どおりに動作しない可能性があります。None
値をフィルタリングすると、フィールドが存在しないオブジェクトが誤って返されます。
DateTimeField
DateTimeField
値のマイクロ秒粒度はサポートされていません。
DurationField
DurationField
は、マイクロ秒ではなく、ミリ秒を保存します。
ForeignKey
可能であれば、
$lookup
操作を使用しないように、ForeignKey
フィールドではなくEmbeddedModelField
を使用する必要があります。EmbeddedModelField
はMongoDB埋め込みドキュメントをエミュレートし、パフォーマンスがForeignKey
フィールドよりも向上します。 操作を削減する方法の詳細については、Atlas ドキュメントの「 $lookup 操作の削減 」ガイドを参照してください。$lookup
フィールドでの CASCAD 削除のパフォーマンスは、
ForeignKey
EmbeddedModelField
を使用する場合ほどパフォーマンスが良くありません。
次のフィールド型は Diango MongoDBバックエンドでは 使用できません 。
GeneratedField
AutoField
(BigAutoField
とSmallAutoField
を含む)
クエリの制限
Dlango MongoDBバックエンドは次の QuerySet
APIメソッドをサポートしていません。
prefetch_related()
extra()
Dlango MongoDBバックエンドでは、複数のコレクションにまたがる QuerySet.delete()
クエリと update()
クエリをサポートしていません。
地理空間クエリ
Dlango MongoDBバックエンドは、次の地理空間クエリ機能をサポートしていません。
GeoDjango
MongoDB固有の地理空間クエリ用の Dlango lookup 演算子
集計演算子
Dlango MongoDBバックエンドには、 MongoDB集計フレームワークのカスタム Diangoフィールドルックアップは含まれていません。代わりに、raw_aggregate()
メソッドを使用してください。「未加工データベースクエリの実行」ガイドを参照してください。
データベース関数
Dlango MongoDBバックエンドは次のデータベース関数をサポートしていません。
サポートされていない管理コマンド
次の django-admin
コマンドはサポートされていません。
createcachetable
(「キャッシュ」を参照してください)inspectdb
移行の制限
Dlango MongoDBバックエンドは、次の移行機能をサポートしていません。
強制されたスキーマ検証。アプリケーションでスキーマ検証を強制する方法については、 MongoDB Serverマニュアルの「 JSON スキーマ検証のガイドを参照してください。
migrate --fake-initial
オプション。
キャッシュ
データベース キャッシュでは、 MongoDBSQL。createcachecollection
createcachetable
次に、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 リリースまでに、次のサードパーティ ライブラリとの互換性をテストする予定です。