【发布时间】: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