GridFSは、デフォルトでファイル名とuploadDateを保存します。MongoDB Javaドライバーを使用すると、文字列IDとDBObjectクエリで検索できます。uploadDateでソートされたファイル名でファイルを見つけるにはどうすればよいですか?
1 に答える
GridFS
MongoDBJavaドライバーでクラスを使用していると仮定します。おっしゃるように、2つのメソッドとが.find(DBObject query)
あり.find(String filename)
、どちらも。を返しますList<GridFSDBFile>
。
GridFS.find(String filename)
このメソッドを使用uploadDate
して、クライアント側で並べ替えを行うのがおそらく最善です(例:use Collections.sort()
)。ObjectID
ところで、の代わりに使用できますuploadDate
。ObjectID
には作成時間が最上位ビットとして含まれているため、返されるファイルは当然昇順uploadDate
で並べ替える必要があります。に依存するObjectID
ことの唯一の欠点は、秒の精度しかないことです。したがって、秒未満の精度が必要な場合は、ソートuploadDate
する必要があります。
結果のインスタンスにメソッドを適用する.find()
ことはできますが、並べ替えはクライアント側で行うのに十分安価である必要があります。ソートされたファイルを受け取ったら、個々のファイルを照会できます。ただし、個別に電話をかける必要があり、効率が低下する可能性があります。db.fs.files DBCollection
.sort()
DBCursor
DBCursor
GridFS
GridFS.find(ObjectID)