0

私はmongodbとdjango-nonrelを使用してサイトを構築しています。私はさまざまな場所で、mongoには、djangoORMよりもストレートpymongoを使用する方が良いと読んだことがあります。これは私の経験にも当てはまります-djangoのORMはリレーショナルデータベースには最適ですが、pymongoがまだ行っていないことはあまりありません。

私の問題は、djangoのORMを使用せずに、最初にデータベーステーブル(エラー...「コレクション」)を設定する方法がわからないことです。models.pyとsyncdbの束縛を取り除き、自分でコードを書くために何をする必要がありますか?

誰かがすでにこのためのガイドを作成しているはずのようですが、私はそれを見つけることができません。

もう少し詳細:

現在、モデルを構築し、syncdbを実行してDBを構成しています。これまでのところ、djangoのORMマジックが機能しています。ただし、サブ要素のインデックス作成など、少し凝った作業を行う必要があるため、ORMが機能しなくなると思います。

その上、プロジェクトの他の場所ではモデル(auth_usersとsessions以外)を使用していません。実際のスキーマは、jsonの他の場所で定義されています。モデルクラスとjsonスキーマを同時に維持したくないのですが、これは悪い習慣です。

最後に、フィクスチャのフラッシュ、syncdb、およびロードに使用する「loadfixtures」管理コマンドがあります。これは、新しいORM置換コードが存在するのに非常に適した場所のようです。そのコードがどのように表示されるか、私にはわかりません。

4

1 に答える 1

0

MongoDBを使用すると、コレクションを「セットアップ」するためのスキーマを事前に宣言するための追加の手順は必要ありません。MongoDBのドキュメント指向の性質は、実際には厳密なスキーマを強制しません。コレクション内のドキュメントには、必要に応じて異なるフィールドが含まれる場合があります。慣れるのは別の概念ですが、データの保存を開始するとすぐにコレクションが作成されます。

コレクションにpymongoのensureIndexを使用して、インデックスを追加できます。

データ挿入時のコレクション作成と同様に、インデックスの追加時にコレクションが存在しない場合もコレクションが作成されます。

始めるのに役立つ記事:DjangoでのMongoDBの使用

MongoDBを初めて使用する場合は、短いオンラインチュートリアルも試してみてください。

于 2012-07-05T03:56:28.470 に答える