【问题标题】:Seemingly basic MongoDB GridFS commands...that I cannot find看似基本的 MongoDB GridFS 命令……我找不到
【发布时间】:2012-06-21 18:35:51
【问题描述】:

如何通过 mongo shell 将文件“上传”到我的 MongoDB 以及如何检索相同的文件?我想知道,即使这样做了,输出是什么。

我认为展示我的所作所为将表明我的尝试是多么愚蠢。

db.fs.files.insert("foo.txt");

这似乎只是插入了实际文本,而不是我想要的文档......并且检索,我发现

db.fs.files.retrieve()

不是函数。 find() 只是显示给我...但我想打印实际文档的内容,无论是二进制数据还是我不在乎的,哈哈。

对于这种悲惨的尝试,我深表歉意 - 但也许它表明我对 GridFS 能做什么知之甚少 - 除了使用情况之外,也许有人可以为我解决这个问题。

【问题讨论】:

    标签: gridfs mongodb


    【解决方案1】:

    您可以从命令行使用 mongofiles:http://www.mongodb.org/display/DOCS/GridFS+Tools

    mongofiles put yourfile.txt
    cd /tmp
    mongofiles get yourfile.txt
    

    第一行将文件 yourfile.txt 放到 mongodb 中。第二个在文件系统的另一个位置检索它。

    我认为直接从 mongo shell 使用 GridFS 是不可能的。

    你可以从python中使用:

        class gridfs.GridFS(database, collection='fs')
    

    http://api.mongodb.org/python/current/api/gridfs/index.html#gridfs.GridFS

    对于应该使用什么 GridFS:

    http://www.mongodb.org/display/DOCS/When+to+use+GridFS

    【讨论】:

    • 只是为将来像我一样困惑的人添加 - mongofiles 是一个可执行文件,它包含在您可能下载的大 'ol mongo zip 中。在 Windows 中,在该目录中打开一个命令窗口,然后从命令行执行以下操作:mongofiles 将 "C:\path\path\file.txt" 放入适当的信息。它将它存储在数据库中。为了证明——删除你刚刚上传的文件,然后运行:mongofiles get "C:\path\path\file.txt",和你放的一样。这将使文件 APPEAR...aka 向我们展示它已被存储。感谢弗雷德里克的回答!
    • @PinkElephantsOnParade 很高兴为您提供帮助 :)
    【解决方案2】:

    将文件从路径插入到gridFs中

    mongofiles -d foorbar -l "D: \ Work \ MongoDB \ GridFS test .txt" put "GridFSTest.txt"

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-08
      • 2016-01-02
      • 2015-08-22
      • 1970-01-01
      • 1970-01-01
      • 2023-03-10
      • 2021-12-18
      • 1970-01-01
      相关资源
      最近更新 更多