MongoDB學習整理的問題點

mongodb中null和$exists的區別是$exists只能判斷字段是否存在,而null不僅僅查詢出字段爲null的文檔並且不存在該字段的文檔也能查詢出來。

mongodb主鍵映射邏輯,默認情況Mongodb需要你所有的文檔都包含有_id字段,如果沒有提供,則Mongodb會提供一個ObjectId默認的值作爲唯一值,可以通過

以下兩種方案提供,通過使用註解@Id標註在主鍵字段上或是聲明字段名稱爲id的唯一字段上(自己指定必須要保證唯一性,不然後拋出異常)。

Mongodb主鍵類型主要是String和BigInteger。

MongoClient配置參數整理。
threadsAllowedToBlockForConnectionMultiplier。 connectionsPerHost的倍數,表示如果池當前耗盡,允許等待連接變爲可用的線程數,如果當前所有的

connection都在使用中,則相當於每個connection上可以有5個線程排隊等待。
maxWaitTime,一個線程訪問數據庫的時候,在成功獲取到一個可用數據庫連接之前的最長等待時間爲2分鐘,這裏比較危險,如果超過maxWaitTime都沒有獲取

到這個連接的話,該線程就會拋出Exception,故這裏設置的maxWaitTime應該足夠大,以免由於排隊線程過多造成的數據庫訪問失敗。
connectTimeout,與數據庫建立連接的timeout。

MongoClient是線程安全的類,他的內部包含了連接池,所以我們的程序中只應該包含一個MongoClient對象。

autoConnectRetry僅僅意味着驅動程序會自動嘗試重新連接到意外斷開連接後在服務器(一個或多個)。在生產環境中,您通常需要將此設置爲true。

如何確認最大鏈接數通過db.serverStatus().connections.available,Mongodb默認的可用鏈接數是999999。

Mongodb是無模式的,但是在使用spring的時候spring提供了基於POJO的註解定義轉換來轉成文檔,這種使用方式相當於我們約定了模式。

mongodb一定不能通過kill進程來關閉,會損壞數據文件,一定要通過admin庫下執行db.shutdownServer()來關閉數據庫。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章