节省S3图像和保存有关MongoDB相应的对象吗?

我想知道什么是上传到S3图像并保存在MongoDB中图像文件的正确途径。

我到目前为止已经实现的逻辑是这样的:

  • 用户上传的图像通过表单(的NodeJS)
  • 图像文件保存到S3
  • 同时我生成图像文件,还具有上传到S3图像URL

一切运作良好,但我希望能够使用MongoDB的文档的OBJECTID来命名图像,然后上传到S3。

所以,我怎么能得到MongoDB的图像文档的OBJECTID这样的话我就可以使用OBJECTID来命名图像,一些临客:03scc8399n39n.png

问题是,直到我保存图像文档MongoDB中我没有OBJECTID这样的话是否意味着我必须做一些事情,如: - 保存图像文件在MongoDB中 - 发现 - 取所得到的唯一的OBJECTID DOC刚才保存的芒果和读取它的ID - 使用id来命名的图像 - 更新图像文档与图像的刚刚上传到S3的URL

这样做的问题是,我要保存,查找,更新,保存在MongoDB中的文档,而不只是创建对象并保存它的MongoDB ...我认为最好的方式,由于我不是这个接近我的缺乏经验。

什么是S3存储图像,在MongoDB中跟踪它们,使用文档ID作为图像的名称的更好的办法?

谢谢

--------------解决方案-------------

事实上,你确实有_id值在保存文档之前。 所有驱动程序的工作方式是,他们也加入新创建的ObjectID实例,并在执行之前保存到指定文档的“_id”字段。 换句话说,如果你的文档提供了一个_id值你保存save命令实际上是一个更新的,如果你不这样做,它只是用新创建的对象ID实例的插入。

因此,你需要做的是(伪):

myImageDoc = new ImageDoc();
imageId = new ObjectID();

myImageDoc._id = imageId;
db.images.save(myImageDoc);

myPng = imageId + ".png";

或者(因为大多数司机延长与_id值集文档实例):

myImageDoc = new ImageDoc();

db.images.save(myImageDoc);
imageId = myImageDoc._id;

myPng = imageId + ".png";

我不是一个JavaScript专家,所以你必须把这种以该语言为合适。

分类:MongoDB的 时间:2015-03-15 人气:0
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 1.320 (s). 10 q(s)