回答:
RailsでMongoDBを使用する場合は、間違いなくMongoMapperの2番目の推奨事項を紹介します。ただし、(これまでのところ)いくつかのブログ投稿以外のドキュメントはありません。ソースコードを詳しく調べてどのように機能するかを確認するのに慣れていない場合は、おそらくまだお勧めできません。
Rails外で作業している場合は、MongoMapperから離れた場所にいることをお勧めします。これはMongoDBをSQLで裏付けられたORMに期待するものと同じように機能させているため、MongoDBの背後にあるさまざまな考え方の力や優れたアイデアを実際に提供していません。少し時間をかけて、低レベルのrubyドライバーで、さらにはJavaScriptコンソールで遊んでみてください。
特にスキーマを正規化する方法を知っていると言って以来、私がお勧めするもう1つのことは、MongoDBを今のところデータベースとして考えることではありません。MongoDBでデータを整理する方法は、リレーショナルデータベースを使用する場合とは大きく異なります。Rubyハッシュを格納および取得する場所として、それをもっと考えてみてください。MongoDBでいくつかのリレーショナルなことを実行できますが、NoSQLに頭を回そうとしている間は、自己完結型のドキュメントのみを使用することをお勧めします。
どのリンクを見る必要があるかについては、MongoDBサイトでできる限りすべてを読むことを強くお勧めします。彼らのドキュメントはとても良いです。特に、高度なクエリ、マルチキーインデックス、MapReduceを見て、NoSQLデータベースの独自の利点と長所のいくつかを理解してください。
私はあなたと同じ段階にいます。MongoDBで新しいプロジェクトを開始する。私は約7週間の経験があります。これは私が非常に便利だと思ったものです:
Mongomapperの代わりにMongoidを使用する
ドキュメントは素晴らしいです。真剣に、素晴らしい。すべてのドキュメントを読むのに約15分かかり、Mongoidでできることとできないことについて非常に正確に理解できます。
明日、mongoidの新しいメジャーバージョンのリリース候補がリリースされます。それは多くの便利なものをもたらすでしょう。
Rails 3を使用しています。開発バージョンをインストールするには、これをgemファイルに追加します。
gem 'mongoid'、 "〜> 2.0.0.beta"
現在のベータは20ですが、私が言ったように、明日はリリース候補があります。
また、Googleグループにも参加することをお勧めします。トラフィックが少なく、人々はどんな質問にも喜んで答えてくれます。たとえば、私は彼らに私の最初のDBモデルの設計を示しました。Mongoidの作成者もあなたの質問に答えます。
2つの言葉で:素晴らしいコミュニティ。
MongoでMachinistを使用できるようにするこのプラグインがあります。
https://github.com/nmerouze/machinist_mongo
かなりうまくいきます。
gem 'machinist_mongo', :require => 'machinist/mongoid',
:git => 'http://github.com/nmerouze/machinist_mongo.git',
:branch => 'machinist2'
あなたはMachinistでForgeryを使うことができます。素晴らしいミックス。
https://github.com/sevenwire/forgery
もう一つ言いたいことがある。私はリレーションデータベースの世界の出身なので、最初は本当に奇妙に聞こえました。mongoデータベースにファイルを保存できます。
実際、以前のようにそれらを管理するよりも速くなる可能性があります。これは、mongoがシャーディングをサポートしているためです。シャーディングとは、コンピューターのクラスターを使用してMongoデータベースにサービスを提供できることを意味します。シームレスです。マスタースレーブ。そのため、多くのコンピューターからファイルを提供し、それぞれが部分を送信することができます。それは非常によくスケーリングします:)
これは、GridFSを使用して行われます。http://www.mongodb.org/display/DOCS/GridFS
Mongoidはそのマスタースレーブ構成をサポートしています。
さらに情報が必要かどうか私に尋ねてください。
編集:
eq
"_id": "1da259c70fe3392c3b000002",
"name": "Dany"
array('name' => 'dany') :: results 0
array('name' => 'Dany') :: results 1
$coll->insert($user, true);
echo (string) $user['_id'];
IDで検索:
$p->findOne(array('_id' => new MongoId( $UID )), array('proj'));
_idを表示:
$coll['_id'] = ( string ) $coll['_id'];
また、_idはコレクションごとに一意であり、他のサーバーでは異なる場合があります
事前の並べ替えには、Aggregation Frameworkを使用できます。
したがって、いくつかのデータ使用を書き込むとき(文字列)またはチェックis_array
$req = (string) $range['name'];
PHPのデフォルトの_POSTサイズは8MBで、モンゴでは、ドキュメントごとに16MBの制限があります。ですから、分析スクリプトでユーザーのなりすましeq USER_AGENT STRINGを想像して、単一の挿入ごとに16MBを送信します。
.NET RocksのMongoDbポッドキャストの優れた初心者/紹介-
http://www.dotnetrocks.com/default.aspx?ShowNum=507
Mike Dirolfがインタビューを受けました...彼はMongoDbプロジェクトに取り組んでいます。ああ、音質は素晴らしいです。
Mike Dirolfは10genのソフトウェアエンジニアで、MongoDBプロジェクトに取り組んでいます。彼は主にPythonとRubyのクライアントドライバーに取り組んでいますが、MongoDBについて話すために時間もかかります-彼はEuroPython、Strange Loop Conf、RubyEnRails、RuPy、RubyConf、およびニューヨーク市、ロンドン、ワシントンのミートアップグループで発表しました。 DCとサンフランシスコ。
junemakersのmongo-mapperを必ず確認してください:http ://github.com/jnunemaker/mongomapperしかし、私はまた、モンゴ・マッパーは、ボンネットの下にどのように動作するかを確認するために、純粋なルビーMongoのドライバで少しプレイすることをお勧めします。Rubyを使用してMongoデータベースにデータを入れるのはそれほど難しくありません。
Ruby Mongoチュートリアルはもうご存知だと思います。あなたがそうしなかった場合に備えて、ここにリンクがあります:http : //www.mongodb.org/display/DOCS/Ruby+Tutorial