mongodb - fs.files GridFS中具有相同文件名的问题

问题描述 投票:0回答:1

我在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个回答
0
投票

我使用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
© www.soinside.com 2019 - 2024. All rights reserved.