2011-06-18 2 views
0

Mongoのドキュメントは、自然の並べ替えは、非キャップコレクションMongodbの自然な並べ替えではない、それは間違っていますか?

http://www.mongodb.org/display/DOCS/Sorting+and+Natural+Order

での動作が保証されていません。しかし、それはどのように間違っていることを説明して?重要でない用途では、特にパフォーマンス/サイズの節約がある場合は、0.1%の精度が完全に上手くいく。

ありがとうございました。

+0

どのようなユースケースですか?宇宙船のロギングまたはミッションクリティカルな軌道計算(後者の場合、0.1%はあなたの計算が速かったとしても実際にあなたの目的地を逃すことができます) – Matt

+0

@Matt、明らかにミッションクリティカルではありません... – Harry

答えて

1

キャップされていないコレクションに$ natural sort(order)を使用することには何も問題ありません。

キャップドコレクションと通常のコレクション(更新/削除が発生する可能性がある)では、$ naturalの意味が大きく異なります。通常のコレクションでは、文書の順序は時間とともに変化する可能性があります。

挿入順にドキュメントを返す場合は、$自然インデックス(実際にはインデックスではありません)は、キャップ付きコレクション以外では役に立ちません。これは、キャップ付きコレクションのみで、コレクション内でドキュメントを削除または移動できないようにする必要があるためです。

+0

自然順序を変更する原因を知っていますか? – Harry

+1

私が言ったように、自然順序は自然ではなく、ディスク上の順序です。コレクションから文書を削除すると、その文書を新しい文書で埋め込むことができます。 –

+0

もう1つの例はレプリケーションです。レプリカセット内のセカンダリノードが初期同期を実行すると、プライマリと100%異なる順序でディスクにデータを書き込むことができます。 –

0

あなたは保証されていないため、番号を付けることはできません。

+0

私は保証がある場合、注文がうまくいかない時を伝える方法があれば、少なくとも1つの特定用途向けに、可能な「典型的な」エラー率を計算することができるかもしれません – Harry

関連する問題