我是 MongoDB 的新手。我想將影像存盤到資料庫中。我知道有兩種方法可以存盤影像,一種是 Gridfs,另一種是 BSON。這兩種實作方式的優缺點是什么?我知道的唯一不同是 BSON 有 16MB 的大小限制。
我感到困惑的另一件事是如何使用這兩種方式來實作模型和 API。任何建議都會非常有幫助!!
我有一個名為 Image 的模型,它有 id、簡要描述和實際影像。這是我的影像模型的代碼。
const Image = mongoose.model('Image', {
imageID: {
type: mongoose.SchemaTypes.ObjectId,
required: true,
},
img: {
<What should I put here? >
},
description: {
type: String,
required: false
},
})
我需要 API 來處理上傳影像(將影像存盤到資料庫,按 ID 獲取影像,按 ID 洗掉影像)。
這就是我通過 ID 獲得的
app.get('/api/images/:id', async (req, res) => {
const result = Image.find({imageID: req.body.imageID})
if (id) {
res.send({result})
}
})
如果我的代碼有問題,請隨時指出!
任何解釋和例子都會非常有幫助!謝謝!
uj5u.com熱心網友回復:
MongoDB 不是用來存盤影像的,當然您可以(非常有限),但最好使用其他解決方案,例如 Amazon S3 或 Google Cloud 存盤。
然后,您從這些存盤的影像中獲取 url,并將該 url 作為一個欄位存盤在您的 mongo 檔案中。您基本上將其用作指向影像的指標。
如果您確實想使用 mongoDB,那么您將需要使用 multer 一個好的視頻來上傳圖片 | 使用 Node.js 創建 REST API。
再次。我想重申最好的方法是使用第 3 方來存盤影像等大檔案。MongoDB 對其檔案有大小限制。
此外,如果您要使用 Atlas 遠程存盤此資料庫,那么這些影像將很快接管您的資料庫限制。使用免費集群時,您有 500MB 的限制,所以除非您打算付費,否則最好使用其他東西。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/451605.html
標籤:javascript 节点.js mongodb 表示 猫鼬
上一篇:上傳單個檔案mongoDb
下一篇:MongoDBjavascript`“$function”`未在mongoplayground.net中回傳預期值
