【问题标题】:How do I insert a binary file into mongodb using javascript?如何使用 javascript 将二进制文件插入 mongodb?
【发布时间】:2014-07-26 19:57:18
【问题描述】:

我想编写一个使用 javascript 将二进制文件插入 mongodb 的脚本。该文件远小于max 16MB limit,因此使用GridFS 实现此功能超出了我正在编写的功能的范围。

我正在编写脚本,所以我可以像这样运行它:

mongo localhost:27017/myMongoDB loadMyFile.js

loadMyFile.js 看起来像这样:

db.myCollection.insert( {
  fileName: "myFile.ogg",
  file: cat(./myFile.ogg")
});

但是当我搜索收藏时:

db.myCollection.find({
    fileName:"myFile.ogg"
});

我得到类似的东西:

{
  "_id":ObjectId("53d2d6c76c694a37315c0195"),
  "fileName": "myFile.ogg",
  "file":"ID3\u0002"
}

这似乎是错误的。请协助。提前致谢。

【问题讨论】:

  • 几件事。 (1) 最大为 16MB。我不知道你的帖子有没有错字,但不是GB,而是MB。 (2) 如果你在 MongoDB 中存储一个文件,你应该使用 GridFS,不管它的大小。这是在 MongoDB 中存储文件的最佳方式。
  • 类似问题stackoverflow.com/questions/17004242/…。似乎您无法通过 shell 直接从文件系统读取到 mongodb。使用 GridFS,您可以使用 mongofiles 直接从文件系统插入文件数据。 docs.mongodb.org/manual/reference/program/mongofiles.

标签: javascript mongodb


【解决方案1】:

正如 @JuanCarlosFarah 和 @RobertMunn 在 cmets 中所提到的,GridFS 似乎是最好的(也许是唯一的?) 将文件插入数据库的方法,而无需编写小文件应用。

mongofiles -d myMongoDB -l myFileName.ogg --type audio/ogg put "The Name of my File in the Collection"

更多详情请参阅mongofiles

【讨论】:

    猜你喜欢
    • 2010-11-10
    • 2015-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-06
    • 2010-09-21
    • 2012-07-01
    • 1970-01-01
    相关资源
    最近更新 更多