1)4MBのドキュメント制限に関して、これは「MongoDB:The DefinitiveGuide」の内容です:
結局のところ、それはユーザーの請求額がどれだけ大きくなると予想するかによって異なります。上記の抜粋で、ドキュメントサイズによって課せられる制限についてのアイデアが得られることを願っています。
2)非正規化スキーマ(請求書はユーザードキュメントに付属)は、請求書に対してグローバルクエリを実行しないことがわかっている場合に使用する方法です(このようなクエリの例は、最新の10件の請求書を取得する場合です。システムに入力されました)。非正規化スキーマを使用する場合は、map-reduceを使用してそのようなクエリの結果を取得する必要があります。
請求書の照会方法に柔軟性が必要な場合は、正規化されたスキーマ(ユーザーと請求書が別々のドキュメントにある)の方が適しています。ただし、MongoDBは結合をサポートしていないため、ユーザーに対応する請求書を取得するたびに複数のクエリを実行する必要があります。
あなたが言及したユースケースを考えると、私は非正規化スキーマを使用します。
3)MongoDBのすべての更新はアトミックであり、シリアル化されています。それはスティーブの懸念に答えるはずです。
これらのスライドが役立つ場合があります。 http://www.slideshare.net/kbanker/mongodb-meetup
MongoDBの本番環境のデプロイメントページもご覧ください。 SF.netのスライドが役立つ場合があります。