關於MongoDB資料庫中檔案唯一性的問題

來源:互聯網
上載者:User

標籤:

※重要※——介紹一下我的環境:MongoDB的“win32-x86_64-2008plus-ssl-3.0.5”,MongoVUE版本是1.6.9,VS2010,dll是1.10版本。

MongoDB中檔案的上傳

實驗①:使用VUE上傳,{本地檔案名稱相同,但檔案內容不同},在VUE中直接點擊“Add Files”上傳檔案,此時VUE會檢查你的檔案名稱是否重複,若重複就會給出提示“是改名?or還是跳過?”;這裡咱們點擊‘重新命名’完成檔案的上傳,在VUE中可以看到:{前三個是我用VUE上傳的}

前兩個檔案雖然內容不同[MD5值不同],但是仍然不允許同名;而第2個和第3個檔案雖然名字不同,但是是同一個圖片[MD5值一樣];

這裡我的理解是:在VUE管理MongoDB時,上傳檔案時【檔案名稱不允許相同,對內容不做要求】

實驗②:用程式上傳,此時什麼也不提示,檔案直接上傳成功;以下是比較:

第3,4,5個檔案的名字全部相同,但是第3,4個檔案的MD5值是相同的,再比較第4,5個檔案,雖然名字一樣,但是MD5值不同【同名但不同內容】。

這裡我的理解是,程式在上傳時不會去判斷檔案是否同名,只是通過dll庫完成檔案上傳,剩餘的由MongoDB來判斷【不同檔案MD5不同】

總結:這裡我想表達的是怎樣在MongoDB中保證檔案的唯一性,目的是你從外部來尋找檔案時通過什麼來唯一確定一個檔案名稱。通過以上比較不難發現:檔案名稱和MD5值都不能保證MongoDB中檔案唯一,那應該採用什麼來保證呢?答案是檔案的ObjectID,就是BOSN中的【索引值對“_id”和其值】,這個在VUE中滑鼠停留在某一條資料上就會有顯示,每一個檔案的第1個鍵“_id”的值是不同的。我就不再貼圖了,大夥可以自己上傳幾個檔案看一下。

當然這裡還有一個地方需要注意,雖然檔案的ObjectID在這個MongoDB中是唯一的,但是MongoDB的ObjectID的產生辦法採用的是[時間戳記,機器,PID,計數器]而不是GUID,因此這裡的ObjectID可不是全球唯一的(或者說全宇宙唯一的**),不能用它來作為Oracle等庫的主鍵。

【第一次寫,可能表達的不清楚,希望各位見諒。有什麼錯誤歡迎指出和探討】

關於MongoDB資料庫中檔案唯一性的問題

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.