MongoDB 如何将图片存储到指定的集合中

How to Store Images into Specified Collections in MongoDB

我知道可以使用 "mongofiles" 实用程序将二进制文件保存到 MongoDB 中。

有什么方法可以将图像存储到指定的集合中,而不是 db.fs.files?

我想创建一个用户集合,用于存储用户详细信息及其个人资料照片,如下所示:

{
    "_id" : "USR_1",
    "username"  : "willsmith123",
    "firstname" : "will",
    "lastname"  : "smith",
    "status"    : "ACTIVE",
    "image"     : { 
             "_id"        : ObjectId("558be8062f194d2587000001")
             "chunkSize"  : 261120,
             "uploadDate" : ISODate("2015-06-25T10:20:47.105Z"),
             "length"     : 25038,
             "md5"        : "b1d38a0b2ccde6da71fd6ae8fe2f637f",
             "filename"   : "mylogo.png"
                  }
}

我怎样才能拥有这样一个集合,它保持用户和他们的图像之间的关系?

注:

数据库是为了数据

文件的文件系统

选择很重要

使用GridFs或者使用下面的东西

而不是保存嵌入文档

         "image"     : { 
              "chunkSize"  : 261120,
              "uploadDate" : ISODate("2015-06-25T10:20:47.105Z"),
              "length"     : 25038,
              "md5"        : "b1d38a0b2ccde6da71fd6ae8fe2f637f",
              "filename"   : "mylogo.png"
          }

将图片的引用保存如下

{
   "_id" : "USR_1",
   "username"  : "willsmith123",
   "firstname" : "will",
   "lastname"  : "smith",
   "status"    : "ACTIVE",
   "imageRef"     : "unique id (objectID)"
}

使用 imageRef 获取或设置图像。

  1. 上传图片时,writestream创建图片 ID。同时,您不能将图片id保存到另一个 collection。
  2. 如果您创建自定义 ID,则不安全且有问题 许多图片。
  3. 您可以在文档中保存图像信息files.metadata