あなたの質問に完全に答える前に、少し背景情報を提供することは私にとって有用だと思いました:
mongoがコレクションにインデックスを作成する場合、基本的にはインデックスキーに基づいてコレクションを並べ替えます。したがって、インデックスを使用するクエリから結果を取得すると、結果はそのインデックスのキーで並べ替えられます。クエリでfield1の基本インデックスを使用している場合、結果は定義上、そのインデックスで並べ替えられます。
ただし、これを回避する方法はいくつかあります。簡単な方法の1つは
1)フィールド1のクエリ
2)field3を使用して1)の結果を並べ替えます
これは、私があなたのコメントを正しく理解していれば、あなたが望む出力を得るでしょう。ただし、2つの主要な作業が必要になるという欠点があり、データのサイズによってはコストがかかる可能性があります。
問題を解決する別の方法があります。複合インデックスです。複合インデックスは、複数のキーを使用して、それらの両方のキーに基づいてソートされるインデックスを生成します。ここにいくつかのドキュメントがあります:http ://www.mongodb.org/display/DOCS/Indexes#Indexes-CompoundKeysそして、主題をより深く掘り下げたい場合は、複合インデックスに関するスタックオーバーフローの質問がかなりあります。
また、mongodbでのインデックス作成(および複合インデックス作成)に関する一般的な情報が必要な場合は、http://www.mongodb.org/display/DOCS/Indexing+Advice+and+FAQ#IndexingAdviceandFAQ-1を確認してください。このドキュメント全体は、私が期待するあなたにとって本当に役立つはずです。
複合インデックスの使用は、エレガントで適切ですが、クエリの後に並べ替えを使用するよりも明らかに複雑です。あなたがそれを調査することに時間を費やすことをいとわないなら、あなたはそれがあなたが素晴らしい解決策を見つけるのを助けると思うだろうと私は確信しています。
お役に立てれば!