MongoDB драйвер для Erlang

Возможно вопрос тупой, но никак не получается прикрутить MongoDB к Erlang приложению. Опыта прикручивания чего-то другого отличного от Монги тоже нет. Пытался сделать это 2-мя способами:

1) Официальный гайд

$ git clone git://github.com/mongodb/mongodb-erlang.git mongodb
$ cd mongodb
$ make

$ erl
1> code:lib_dir().
"/usr/lib/erlang/lib"

$ mkdir /usr/lib/erlang/lib/mongodb-master
$ cp -R deps ebin /usr/lib/erlang/lib/mongodb-master/

Ага, ок

erl -pa ebin deps/*/ebin

2> application:start(bson).
ok
3> application:start(mongodb).
ok

> Host = {localhost, 27017}.
> {ok, Conn} = mongo:connect (Host).
** exception error: undefined function mongo:connect/1

Посмотрел в mongo.erl и правда функции connect нету, странно, может чего не понимаю…

хм, попробовал на удачу mongo:insert (foo, {x,1, y,2}).
Думал будет какая-нибудь ошибка типа «нету подключения», а получил:

** exception error: {badrecord,context}
in function mongo:write/1 (src/mongo.erl, line 229)
in call from mongo:insert/2 (src/mongo.erl, line 78)
in call from mongo:insert/2 (src/mongo.erl, line 75)

Нифига не понимаю… ((

2) Создал пустое OTP приложение, прописал в rebar.config
{deps, [
{mongodb, ".*", {git, «git://github.com/mongodb/mongodb-erlang.git», {branch, «master»}}}
%%{bson, ".*", {git, «git://github.com/mongodb/bson-erlang.git», {branch, «master»}}}
]}.

soif@Ubuntu:~/try_mongo$ rebar get-deps compile
==> bson (get-deps)
==> mongodb (get-deps)
==> try_mongo (get-deps)
==> bson (compile)
==> mongodb (compile)
/home/soif/try_mongo/deps/mongodb/src/mongo.erl:333: syntax error before: '.'
/home/soif/try_mongo/deps/mongodb/src/mongo.erl:32: function add_user/3 undefined
/home/soif/try_mongo/deps/mongodb/src/mongo.erl:330: spec for undefined function mongo:add_user/3
ERROR: compile failed while processing /home/soif/try_mongo/deps/mongodb: rebar_abort

Не хватает понимания Эрланга, посоветуйте что-нибудь, hello world с монгой какой-нибудь бы…
  • Вопрос задан
  • 4629 просмотров
Решения вопроса 1
Tremax
@Tremax
В папке test, а в ней файл — mongo_SUITE.erl (https://github.com/mongodb/mongodb-erlang/blob/refactor/test/mongo_SUITE.erl), а там пример как использовать.

{ok, Connection} = mongo_connection:start_link({"127.0.0.1", 27017}, [])
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы