Я пробую официальный драйвер 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.Я хочу дать каждому пользователю уникальный номер при посещении.Поэтому я сохранил счетчик в дБ, когда при посещении пользователя счетчик добавляется на 1 и возвращается пользователю как уникальный номер.Но я всегда беспокоюсь о том, что два пользователя получают одно и то же число при чтении БД одновременно.Как я могу сделать уникальный счетчик увеличенным на 1, используя mongodb?
Большое спасибо!