開発者FAQ

based on v13 (2010/08/22 追従) - オリジナル

Markus Gattolさんの Webサイト にあるすばらしいFAQも参照してください。

"namespace" とは何ですか

MongoDB は [BSON] オブジェクトを コレクション の中に格納します。 データベース名とコレクション名(両方をピリオドで結んだもの)の合わせたものが、 namespace と呼ばれています。

たとえば、 acme.users は、namespaceで、acme がデータベース名で、 users がコレクション名です。ピリオド自体をコレクション名に入れることができるので、 acme.blog.posts のような名前も問題ないです。 (この場合 blog.posts がコレクション名です)

どうやってコレクションの中のオブジェクトを全件別のコレクションにコピーできますか?

下記参照。下のコードは eval() メソッドを使い、ハイパフォーマンスにサーバサイドで動きます。

db.myoriginal.find().forEach( function(x){db.mycopy.save(x)} );
オブジェクトのアトリビュートを削除した場合、データベースから削除されますか? 

はい。再度そのオブジェクトを save() することで削除します。

null は使えますか?

オブジェクトのメンバーに対しては使えます。しかし、nullはオブジェクトではないので、null自体をデータベースコレクションに追加することはできません。{}を追加することはできます。

アップデートしたとき、すぐにディスクに書かれますか(fsync)?

いいえ、ディスクへの書き込みはデフォルトではlazyです。ディスク書き込みは数秒後かもしれません。たとえば、1秒間に、1つのオブジェクトに対し、1000回インクリメントするような場合でも、ディスクへの書き込みは1回だけになります。(fsyncオプションは、コマンドラインと getLastError の両方に存在することに注意してください。)

どうやってトランザクションやロックをしますか?

MongoDBは伝統的なトランザクションロックや、複雑なロールバックを伴なうロールバックは使えません。なぜなら、軽く速く、パフォーマンスのためにデザインされているからです。

MySQLのMyISAM autocommitと似たようなものと考えられます。  特に多くのサーバを跨ってシステムが動く場合、トランザクションサポートをできるかぎりシンプルに保つことで、パフォーマンスは向上します。

このシステム(MongoDB)は、多くのユースケースで十分な、アトミックな更新をするための代替の方法を提供しています。  Atomics Operations に詳しい情報があります。

SELECT count * and GROUP BY と同じことはどうやりますか? 

aggregation 参照。

大量の "Connection Accepted" ログメッセージはなんですか? 

mongod が大量の数の connection accepted メッセージを出しているということは、クライアントが接続と切断を繰り返しているこということです。  これは問題はないですが、効率は悪いです。

CGIではこれは普通です。   そのスピードで問題ないなら、--quiet オプションをつけることでこれらのログを出さなくすることができます。もし、よりよいパフォーマンスを出したいなら、Apache moduleがやっているように、コネクションをプールすることです。

どのRAIDを使うべきですか?_

RAID-5ではなく、RAID-10かそれと同様なものを推奨します。もちろん、どちらも問題なく動きます。

Amazon EBS で動かせますか? 問題は?_

私たちの経験では問題ありません。 さらなる情報は、 ここ にあります。

なぜ私のデータはそんなに巨大なんですか?_

MongoDBはファイルシステムの断片化を避けるために前もって積極的にディスクスペースの確保をします。これは設定可能です。 詳しい情報はここを参照してくてください


Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.

IF YOU HAVE A QUESTION, POST IT TO THE USER GROUP.

These pages are fine for comments, but for questions, your best bet will always be the MongoDB User Group.

blog comments powered by Disqus