GridFS 默认存储文件名和uploadDate。MongoDB Java 驱动程序允许您通过 String Id 和 DBObject 查询来查找。如何按文件名查找文件,按uploadDate 排序?
问问题
967 次
1 回答
0
我假设您正在使用GridFS
MongoDB Java 驱动程序中的类。正如您所提到的,它有两个方法.find(DBObject query)
和.find(String filename)
,它们都返回 a List<GridFSDBFile>
。
最好使用该GridFS.find(String filename)
方法并uploadDate
在客户端进行排序(例如 use Collections.sort()
)。顺便说一句,您可以使用ObjectID
代替uploadDate
. 由于ObjectID
包含创建时间作为最高有效位,因此返回的文件自然应该按uploadDate
升序排序。依赖的唯一缺点ObjectID
是它只有秒精度,所以uploadDate
如果你需要亚秒精度,你必须对它进行排序。
您可以.find()
在结果实例上db.fs.files DBCollection
应用该.sort()
方法DBCursor
,但排序应该足够便宜,可以在客户端进行。收到 sortedDBCursor
后,您可以查询GridFS
各个文件。但是,您最终不得不GridFS.find(ObjectID)
单独打电话,这可能会降低效率。
于 2012-08-28T15:58:41.907 回答