我正在嘗試官方的mongodb erlang驅動程序。我閱讀了文檔,但仍然有些東西我不明白。希望誰能告訴我什麼是使用它的正確方法:使用erlang mongodb驅動程序進行數據庫操作的正確方法是什麼?
每次我做一個動作,我剛寫的東西如下:
{ok, Conn} = mongo:connect ({localhost, 27017}).
mongo:do (safe, master, Conn, test, fun() ->
mongo:save (foo, {'_id', 1, bbb,22, y,2}),
mongo:save (foo, {'_id', 4, bbb,22, y,2}) end).
mongo:disconnect().
這是一個正確的方式?每次我完成一個數據庫操作,
Conn
似乎都死了。或者我應該保留Conn
而不是斷開連接以便下次再使用它?沒有全局變量可以保留Conn
,所以我想出來的唯一方法就是使用類似gen_server
的東西,並將Conn
保存在其狀態中以供重用。這是正確的方式嗎?我也看到有一個
connect_factory
方法。但我無法弄清楚處理這個問題的正確方法。是connect_factory
比連接處理大量的數據庫操作更好的方法?以及如何通過使用connect_factory
獲得可行的Conn
?這是一個與mongodb不太相關的問題。我想在每次訪問時給每個用戶一個唯一的號碼。所以我在db中保存了一個計數器,當用戶訪問時,計數器加1並作爲唯一編號返回給用戶。但是我總是擔心兩個用戶同時讀取db時會得到相同的數字。如何使用mongodb將獨特的計數器增加1?
非常感謝!