【问题标题】:mongodb - issue with same file name in fs.files GridFSmongodb - fs.files GridFS 中文件名相同的问题
【发布时间】:2019-02-14 07:27:30
【问题描述】:

我在 mongodb GridFS 的 fs.files 集合中有多个文件,名称相同但用户不同。

当我使用以下查询时:

db.fs.files.find({"metadata.folder" : { "$exists": false,"metadata.msgid" : { "$exists": false}},{"metadata.user":1, "_id":0, "filename":1}).pretty()

我得到如下结果:

{ "filename" : "standard.wav", "metadata" :
{ "user" : "101" }

}
{ "filename" : "standard.wav", "metadata" :
{ "user" : "100" }

}
{ "filename" : "standard.wav", "metadata" :
{ "user" : "104" }

}

所有用户的文件都不同,但名称相同。

所以当我使用以下命令在本地系统中为不同的用户存储文件时,它总是为所有用户存储相同的文件。

对于用户 101:

mongofiles --uri MONGO_DSN -d test -l /home/user/101/standard.wav get standard.wav

对于用户 100:

mongofiles --uri MONGO_DSN -d test -l /home/user/100/standard.wav get standard.wav

对于用户 104:

mongofiles --uri MONGO_DSN -d test -l /home/user/104/standard.wav get standard.wav

它应该为不同的用户存储不同的文件。

提前致谢。

【问题讨论】:

    标签: mongodb mongodb-query gridfs


    【解决方案1】:

    我已经使用get_id 参数而不是使用get 解决了它。

    所以我现在的命令:

    对于用户 101:

    mongofiles --uri MONGO_DSN -d test -l /home/user/101/standard.wav get_id $object101
    

    对于用户 100:

    mongofiles --uri MONGO_DSN -d test -l /home/user/100/standard.wav get_id $object100
    

    对于用户 104:

    mongofiles --uri MONGO_DSN -d test -l /home/user/104/standard.wav get_id $object104
    

    这里我的$object101$object100$object104 是 GridFS 中对象的扩展 JSON _id。

    参考文献:

    1. mongofiles: get file by _id in addition to filename
    2. MongoFiles

    【讨论】:

      猜你喜欢
      • 2011-10-19
      • 1970-01-01
      • 2023-04-05
      • 2012-02-17
      • 1970-01-01
      • 1970-01-01
      • 2015-07-18
      • 2013-06-01
      • 1970-01-01
      相关资源
      最近更新 更多