我正在尝试官方的mongodb erlang驱动程序。我阅读了文档,还有一些我无法理解的东西。希望任何人都可以告诉我使用它的正确方法:
每次我采取行动时,我都会写下如下内容:
{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
比连接处理大量数据库操作更好吗?如何使用Conn
connect_factory
这是一个与mongodb无关的问题。我想在访问时给每个用户一个唯一的号码。所以我在db中保存了一个计数器,当用户访问时,计数器加1并作为唯一编号返回给用户。但我总是担心两个用户同时阅读db会得到相同的数字。如何使用mongodb将一个独特的计数器增加1?
非常感谢!
答案 0 :(得分:5)