我正在使用MongoDB來存儲用戶配置文件,現在我想使用GridFS爲每個配置文件存儲圖片。在文檔中存儲對gridFS文件的引用的最佳方式是什麼?
兩種方式我比較連接兩個文件是:
A)存儲在用戶的image
領域的文件ID的引用:
User:
{
"_id": ObjectId('[user_id here]'),
"username": 'myusername',
"image": ObjectId('[file_id here]')
}
B)存儲到一個參考用戶在文件的元數據:
File metadata:
{
"user_id": ObjectId('[user_id here]')
}
我知道在很多方面它給我和依賴於應用程序的細節(這將是移動的,如果這能幫助),但我我只是想知道這樣做是否有任何普遍的好處?
謝謝 - 你能澄清一下嗎?我假設方法B我可以1)獲取用戶,2)獲取具有元素的文件與先前檢索的用戶的用戶ID。我沒有文件元數據的經驗,所以這些的細節將是錯誤的,但我想象的東西像$ grid-> findOne(array('metadata'=> array('user_id'=> ObjectId('[user_id這裏]'))))(使用PHP驅動程序)..是不可能的? –
當你提到元數據時,我認爲你指的是一個單獨的集合,而不是GridFS使用的文件集合 - 默認情況下,它不包含user_id,所以我在我的腦海默認了上面的。 當然,您可以將user_id添加到文件集合,並允許您直接查詢它。 那是,那麼你必須確保索引文件收集正確的情況下進行優化您的查詢,而不是使用「標準」 GridFS的設置 - 更適合你要記住,但同樣有效。我仍然會選擇方法A,但由您決定:) –
感謝您的幫助! –