0

GridFS 默认存储文件名和uploadDate。MongoDB Java 驱动程序允许您通过 String Id 和 DBObject 查询来查找。如何按文件名查找文件,按uploadDate 排序?

4

1 回答 1

0

我假设您正在使用GridFSMongoDB 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 回答