【发布时间】:2019-01-09 19:11:18
【问题描述】:
我正在尝试使用 mongofiles 命令从 GridFS 获取文件。该命令在我的 Mac 终端上运行良好,但相同的命令在 Windows cmd 上引发错误。
在 OS X 终端上:
mongofiles --db newdb get_id 'ObjectId("58a2e2dee4b052100af93a4f")' --local 32.gif
2018-08-02T11:18:14.773+0530 connected to: localhost
finished writing to: 32.gif
在 Windows CMD 上
mongofiles -d newdb get_id 'ObjectId("58a2e2dee4b052100af93a4f")' --local 32.gif
2018-08-02T11:20:15.049+0530 connected to: localhost
2018-08-02T11:20:15.050+0530 Failed: error opening GridFS file with _id 'ObjectId(58a2e2dee4b052100af93a4f)': not found
我尝试为 objectid 提供各种字符串组合、转义和添加斜杠、单引号和双引号,但没有任何效果。我确信我错过了一些简单的东西,但我现在已经花了一个多小时。
编辑 Windows mongo 实例上的 db 中也确实存在带有 _id 的文件:
> use newdb
switched to db newdb
> db.fs.files.find({"_id":ObjectId("58a2e2dee4b052100af93a4f") });
{ "_id" : ObjectId("58a2e2dee4b052100af93a4f"), "chunkSize" : NumberLong(261120)
, "length" : NumberLong(3944), "md5" : "330af44d664364882237d92a5d7f29a8", "file
name" : "/AAA/BBB/CCC/32.gif", "contentType" : "/AAA/BBB/CCC/32.gif", "uploadDate" : ISODate("2017-02-14T10:58:38.447Z"), "a
liases" : null }
但是,如果我尝试使用文件名获取文件,则会收到另一个关于 mongofiles 尝试将文件名解析为参数的错误。将文件名括在双引号内也不起作用
【问题讨论】: