繁体   English   中英

如何使用reactmongo在Play框架中覆盖gridfs文件?

[英]How to override a gridfs file within the Play Framework using reactivemongo?

我有以下代码来编写gridfs文件:

  request.body.files.toList.lastOption match {
    case Some(picture) => {
      val filename = picture.filename
      val contentType = picture.contentType
      picture.ref.moveTo(new File("/tmp/" + filename), true)

      val gridFS = new GridFS(db, "attachments")
      val fileToSave = DefaultFileToSave(filename, contentType)

      val futureResult: Future[ReadFile[BSONValue]] = gridFS.writeFromInputStream(fileToSave, new FileInputStream(new File("/tmp/" + filename)))
      ...

代码工作正常,但是当我用相同的名称编写两个文件时,它会复制集合中的文件。 我以为使用文件名字段创建唯一索引,但这将保留第一个文件,而我需要保留最新版本。 我该怎么做?

谢谢,

GA

  1. 删除文件名的索引
  2. 上传新文件,如果多个文件版本具有相同的名称,则可以
  3. 将查询改写成类似以下内容:find({filename:“ some-file-name.txt”})。sort({uploadDate:-1})。limit(1),结果只会得到最新的
  4. 您可以使用新上传文件中的时间戳删除所有具有相同名称和较小时间戳的文件

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM