0

GridFSは、デフォルトでファイル名とuploadDateを保存します。MongoDB Javaドライバーを使用すると、文字列IDとDBObjectクエリで検索できます。uploadDateでソートされたファイル名でファイルを見つけるにはどうすればよいですか?

4

1 に答える 1

0

GridFSMongoDBJavaドライバーでクラスを使用していると仮定します。おっしゃるように、2つのメソッドとが.find(DBObject query)あり.find(String filename)、どちらも。を返しますList<GridFSDBFile>

GridFS.find(String filename)このメソッドを使用uploadDateして、クライアント側で並べ替えを行うのがおそらく最善です(例:use Collections.sort())。ObjectIDところで、の代わりに使用できますuploadDateObjectIDには作成時間が最上位ビットとして含まれているため、返されるファイルは当然昇順uploadDateで並べ替える必要があります。に依存するObjectIDことの唯一の欠点は、秒の精度しかないことです。したがって、秒未満の精度が必要な場合は、ソートuploadDateする必要があります。

結果のインスタンスにメソッドを適用する.find()ことはできますが、並べ替えはクライアント側で行うのに十分安価である必要があります。ソートされたファイルを受け取ったら、個々のファイルを照会できます。ただし、個別に電話をかける必要があり、効率が低下する可能性があります。db.fs.files DBCollection.sort()DBCursorDBCursorGridFSGridFS.find(ObjectID)

于 2012-08-28T15:58:41.907 に答える