2
我有以下元數據的圖像:如何通過文件元數據從GridFS中刪除圖像文件?
> db.fs.files.find().pretty()
{
"_id" : ObjectId("4576874577342672346"),
"chunkSize" : 262144,
"user_name" : "my name",
"filename" : "image.jpg",
"length" : 7103,
"uploadDate" : ISODate("2014-01-23T13:31:48.155Z"),
"user_email" : "[email protected]",
"md5" : "1234567890"
}
>
我想刪除的Python(PyMongo)的圖像。
上delete()
的文件似乎規定在delete()
功能唯一可以接受的參數是file_id
:
http://api.mongodb.org/python/current/api/gridfs/#gridfs.GridFS.delete
編程,我有可用,可以在文件的元數據進行匹配以下值:
- USER_NAME
- 名
- USER_EMAIL
我怎麼可以:
- 獲取
file_id
(通過使用上述值,如果有必要的)或 - 刪除基於比
file_id
其他元數據字段的文件嗎?
此外,我目前只用單塊文件測試,如果有更大的文件,今後將刪除交互通過file_id
或其他元數據刪除所有相關的塊呢?
是,這種方法工作得很好。 'GridFS'實際上只是一個映射到普通MongoDB集合的約定(默認情況下'fs.files'與'fs.chunks'具有1:多關係)。由於您正在使用GridFS模塊提供的'fs.delete(_id)'方法,因此它將從兩個集合中刪除所有關聯的數據。 – Stennie
感謝您的澄清和額外的信息。 – user1063287