mongofiles get_id在Windows 7上无法从cmd运行

时间:2018-08-02 05:54:37

标签: mongodb gridfs

我正在尝试使用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尝试将文件名解析为参数的错误。将文件名用双引号引起来的效果不佳

1 个答案:

答案 0 :(得分:0)

正如我所想,这是一个非常简单的解决方案。猜猜我有点想尽快解决这个问题。对我有用的是:

mongofiles -d newdb get_id "ObjectId(\"58a2e2dee4b052100af93a4f\")" --local 32.gif