Возможно вопрос тупой, но никак не получается прикрутить MongoDB к Erlang приложению. Опыта прикручивания чего-то другого отличного от Монги тоже нет. Пытался сделать это 2-мя способами:
1) Официальный гайд
$ git clone git://github.com/mongodb/mongodb-erlang.git mongodb
$ cd mongodb
$ make
Посмотрел в 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)
В папке 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}, [])
коннектится, уже хорошо
Посмотрел mongo_SUITE.erl, не понял, что должно быть в Case и Config
Что делает этот код, макрос ?config и что должно быть в Config?
Ага, спасибо, вроде понял…
т.е. по идее я делаю правильно, база test у меня создана и монга запущена:
7> Config2 = mongo_SUITE:init_per_testcase(test,Config1).
[{connection,<0.58.0>},
{collection,'mongo_SUITE-test-1369154928'},
{database,test}]
8> mongo_SUITE:insert_and_find(Config2).
** exception error: undefined function bson:lookup/2
in function mongo:assign_id/1 (src/mongo.erl, line 205)
in call from mongo:'-insert/2-lc$^0/1-0-'/1 (src/mongo.erl, line 77)
in call from mongo:insert/2 (src/mongo.erl, line 77)
in call from mongo_SUITE:'-insert_and_find/1-fun-0-'/1 (mongo_SUITE.erl, line 50)
in call from mongo:do/5 (src/mongo.erl, line 59)
Но откуда тогда ошибка в bson:lookup
Да и просто указать драйвер Монги в зависимостях не получается, ошибка как написано в самом начале.