2

MongoDB の日付値を粒度でソートすることは可能ですか?

結果を日付順に並べたいのですが、時間/分/秒のデータは気にしません。「20101215」のような追加のパラメーターを保存する必要はありません。

4

1 に答える 1

1

あなたの質問に対する短い答えは「いいえ」です。別のフィールドを保存しないと不可能です。Mongoでソートするときにb/cをしたくない可能性があるとしても、ソートするフィールドにインデックスを付ける必要があります。そうしないと、データベースはソートを行うためにデータベース内のすべてのドキュメントをスキャンする必要があります。したがって、提案していることを行う場合は、mongo では不可能な部分的な日付フィールドにもインデックスを付ける必要があります。

最良のアプローチは、年/月/日用と時/分/秒用の 2 つのフィールドを保存することだと思います。そうすれば、並べ替えとインデックス作成の柔軟性が高まります。おそらくあなたが望むほどきれいでも理想的でもありませんが、それがデータベースの唯一のオプションです。

もう 1 つのオプションは、結果が戻ってきた後にアプリケーションで順序を調整することです。

于 2010-12-28T06:54:47.373 に答える