使用express上传pdf到mongo db

发布于 2025-01-10 13:33:36 字数 121 浏览 0 评论 0原文

我正在尝试使用 Express 实现 pdf 上传并将其保存到 mongo db 。但它只是保存到我的电脑本地,我无法将其发送到 mongo db。任何人都可以帮助我如何使用 multer 或任何其他库上传或访问 pdf 文件。

I'm trying to implement pdf upload with express and save it to mongo db . But it was only saving to localy my pc i can't send it to mongo db. Can any one help me how can i upload or access pdf files using multer or any other library.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

随梦而飞# 2025-01-17 13:33:37

据我所知,您有 2 种(也许是 3 种)在 MongoDB 中使用“文件”的方法,该方法取决于您的用例(和文档的大小):

  1. 将文件直接存储在文档中
    如您所知,您可以在 JSON/BSON 文档中存储您想要的任何内容,您只需要存储字节,您的 PDF 将成为文档的一部分。
    您只需要注意 16Mb 的文档大小限制即可。

您可以在 JSON 文档中添加文件的元数据,它们存储在同一位置。

例如,在 Java 中,您只需将 byte[] 存储在属性中,看看他的测试:
https:// github.com/mongodb/mongo-java-driver/blob/master/src/test/com/mongodb/ByteTest.java#L188

  1. 使用 GridFS
    GridFS 允许您将“任何大小”的文件存储到 MongoDB 中。您存储的文件被驱动程序分成块,并存储为较小的文档到 MongoDB 中,当您读取它时,它将被放回到单个文件中。使用这种方法,您没有任何大小限制。

在这种情况下,如果要添加元数据,您可以创建一个 JSON 文档,并在其中存储所有属性和对 GridFS 文件的引用。

您可以在这里找到相关信息: http://docs.mongodb.org/manual/core /gridfs/
对于这个 Java 测试:
https:// github.com/mongodb/mongo-java-driver/blob/master/src/test/com/mongodb/gridfs/GridFSTest.java

  1. 创建对外部存储的引用
    这并不是直接的“MongoDB”用例,但我认为有必要提及它。显然,您可以将文件存储在某些特殊存储中,并仅使用 MongoDB 来获取元数据并引用该文件。我将举一个愚蠢的例子,但假设您想要创建一个视频应用程序,您可以将视频存储在 YouTube 中,并将其与所有应用程序元数据一起引用到文档中。

因此,让我们继续讨论您的用例/问题,以便您可以使用方法 1 和 2。 2,这取决于文件的大小以及您如何访问它们。如果您可以向我们提供有关您的应用程序的更多信息,人们可能会对最佳方法有更强烈的意见。

如果您正在寻找这样做的人,您可以查看 MongoDB World 的演示文稿: http://www.mongodb.com/presentations/translational-medicine-platform-sanofi-0

As far as I know, you have 2 -maybe 3- ways of using "files" with MongoDB, the approach will depend on your use case (and size of the document):

  1. Store the files directly in the document
    As you know you can store anything you want in a JSON/BSON document, you just need to store the bytes and your PDF will be part of the document.
    You just need to be careful about the document size limit of 16Mb.

You can add meta-data for the file in the JSON document, and they are stored in the same place.

For example in Java you will just store byte[] in an attribute, look at his test:
https://github.com/mongodb/mongo-java-driver/blob/master/src/test/com/mongodb/ByteTest.java#L188

  1. Use GridFS
    GridFS allows you to store files of "any size" into MongoDB. The file you are storing is divided in chunks by the driver and stored into smaller documents into MongoDB, when you read it it will be put back in a single file. With this approach, you do not have any size limit.

In this case, if you want to add metadata, you create a JSON document that you store with all the attributes and a reference to the GridFS file.

You can find information about this here: http://docs.mongodb.org/manual/core/gridfs/
and to this Java test:
https://github.com/mongodb/mongo-java-driver/blob/master/src/test/com/mongodb/gridfs/GridFSTest.java

  1. Create Reference to an external storage
    This one is not directly a "MongoDB" use case, but I think it is important to mention it. You can obviously store the files in some special storage and use MongoDB just for the metadata and reference this file. I will take a stupid example but suppose you want to create a Video application, you can store the videos in YouTube and reference this into the document with all your application metadata.

So let's stay on your use case/question, so you can use approaches 1 & 2, and it will depend on the size of the files and how do you access them. If you can give us more information about your application people may have a stronger opinion on the best approach.

If you are looking for people doing this, you can look at this presentation from MongoDB World: http://www.mongodb.com/presentations/translational-medicine-platform-sanofi-0

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文