新聞中心

默認(rèn)情況下,GridFS 使用 fs.files 和 fs.chunks 兩個(gè)集合來(lái)存儲(chǔ)文件的元數(shù)據(jù)和塊。每個(gè)區(qū)塊都由其唯一的 ObjectId(_id)字段標(biāo)識(shí)。fs.files 用作父文檔,fs.chunks 文檔中的 files_id 字段將塊鏈接到其父級(jí)。
下面展示了一個(gè)簡(jiǎn)單的 fs.files 集合文檔:
{
"filename": "test.txt",
"chunkSize": NumberInt(261120),
"uploadDate": ISODate("2014-04-13T11:32:33.557Z"),
"md5": "7b762939321e146569b07f72c62cca4f",
"length": NumberInt(646)
}
該文檔指定了文件的文件名、塊大小、上傳日期和長(zhǎng)度。下面展示了一個(gè)簡(jiǎn)單的 fs.chunks 集合文檔:
{
"files_id": ObjectId("534a75d19f54bfec8a2fe44b"),
"n": NumberInt(0),
"data": "Mongo Binary Data"
}
將文件添加到 GridFS
想要將文件添加到 GridFS 中,可以使用 put 命令。下面的示例中演示了使用 put 命令在 GridFS 中存儲(chǔ) mp3 文件的過(guò)程。在存儲(chǔ)文件時(shí)我們需要使用 mongofiles.exe,它在 MongoDB 安裝目錄下的 bin 目錄中。
打開(kāi)命令行工具,跳轉(zhuǎn)到 mongofiles.exe 所在的目錄并輸入以下代碼:
C:\Users\79330>mongofiles.exe -d gridfs put F:/code/music/song.mp3
2021-03-09T09:38:22.271+0800 connected to: localhost
2021-03-09T09:38:22.333+0800 added file: F:/code/music/song.mp3
提示:若已經(jīng)將 MongoDB 安裝目錄下的 bin 目錄添加到了 Path 環(huán)境變量中,則可以省略跳轉(zhuǎn)到 bin 目錄的步驟,直接在命令行工具中輸入以上命令即可。
上面命令中 gridfs 為要存儲(chǔ)文件的數(shù)據(jù)庫(kù)名稱,如果數(shù)據(jù)庫(kù)不存在,那么 MongoDB 會(huì)自動(dòng)創(chuàng)建;F:/code/music/song.mp3 為要存儲(chǔ)文件的路徑以及名稱。
若要查看我們上面保存在數(shù)據(jù)庫(kù)中的文檔,可以使用 find() 命令:
> db.fs.files.find().pretty()
{
"_id" : ObjectId("6046d18e01ef664194f5a78c"),
"chunkSize" : 261120,
"uploadDate" : ISODate("2021-03-09T01:38:22.341Z"),
"length" : 4148442,
"md5" : "cc3495f49ece8212906ef5c59e7440f0",
"filename" : "F:/code/music/song.mp3"
}
我們還可以通過(guò)上面查詢中返回的文檔 ID 來(lái)查看 fs.chunks 集合中與存儲(chǔ)文件相關(guān)的所有數(shù)據(jù):
> db.fs.chunks.find({files_id:ObjectId('6046d18e01ef664194f5a78c')})
上面的查詢返回了 15 個(gè)文檔的數(shù)據(jù),這意味著前面我們存儲(chǔ)的 song.mp3 文件被存儲(chǔ)到了 15 個(gè)區(qū)塊中。
當(dāng)前名稱:MongoDBGridFS
分享路徑:http://m.5511xx.com/article/coejoec.html


咨詢
建站咨詢
