如何通过mongodb-erlang从复制集mongo中读取

时间:2016-11-01 10:10:26

标签: mongodb erlang

1. {ok,P}= mongoc:connect({rs, <<"dev_mongodb">>, [ "dev_mongodb001:27017", "dev_mongodb002:27017"]}, [{name, mongopool}, {register, mongotopology}, { rp_mode, primary},{ rp_tags, [{tag,1}]}], [{login, <<"root">>}, {password, <<"mongoadmin">>}, {database, <<"admin">>}]).
2. {ok, Pool} = mc_topology:get_pool(P, []).
3. mongoc:find(Pool, {<<"DoctorLBS">>, <<"mongoMessage">>}, #{<<"type">> => <<"5">>}).

我在github中使用了最新版本,并在第3步出错。enter image description here

看来我的选择器无效,有没有关于如何使用mongodb-erlang的例子?

我的mongodb版本是3.2.6,auth类型是SCRAM-SHA1。

mongoc:find(Pool, <<"mongoMessage">>, #{<<"type">> => <<"5">>}).

我在rs和单模式下尝试过这个,但仍然遇到了这个错误。 有没有其他简单的连接和阅读方式? 我只需要在我的erlang程序启动时从mongo读取一些数据,没有其他操作。

1 个答案:

答案 0 :(得分:0)

由于mongo 2.6中引入了新的查询api,今天的mongo版本不支持tuple colldb 您应该连接到DoctorLBS数据库,而不是使用

mongoc:find(Pool,  <<"mongoMessage">>, #{<<"type">> => <<"5">>}).