-module(mongo). -compile(no_auto_import). -export([connect/2, db/2, collection/2, count_all/1, count/2, insert_one/2, insert_many/2, delete_one/2, delete_many/2, find_all/2, find/3, update_one/4, update_many/4]). -spec connect(binary(), integer()) -> {ok, mongo@client:connection()} | {error, nil}. connect(Ip, Port) -> mongo@client:connect(Ip, Port). -spec db(mongo@client:connection(), binary()) -> mongo@client:database(). db(Connection, Name) -> mongo@client:db(Connection, Name). -spec collection(mongo@client:database(), binary()) -> mongo@client:collection(). collection(Db, Name) -> mongo@client:collection(Db, Name). -spec count_all(mongo@client:collection()) -> {ok, integer()} | {error, mongo@crud:mongo_error()}. count_all(Collection) -> mongo@crud:count_all(Collection). -spec count(mongo@client:collection(), bson@types:value()) -> {ok, integer()} | {error, mongo@crud:mongo_error()}. count(Collection, Filter) -> mongo@crud:count(Collection, Filter). -spec insert_one(mongo@client:collection(), bson@types:value()) -> {ok, integer()} | {error, mongo@crud:mongo_error()}. insert_one(Collection, Doc) -> mongo@crud:insert_one(Collection, Doc). -spec insert_many(mongo@client:collection(), list(bson@types:value())) -> {ok, integer()} | {error, mongo@crud:mongo_error()}. insert_many(Collection, Docs) -> mongo@crud:insert_many(Collection, Docs). -spec delete_one(mongo@client:collection(), bson@types:value()) -> {ok, integer()} | {error, mongo@crud:mongo_error()}. delete_one(Collection, Filter) -> mongo@crud:delete_one(Collection, Filter). -spec delete_many(mongo@client:collection(), bson@types:value()) -> {ok, integer()} | {error, mongo@crud:mongo_error()}. delete_many(Collection, Filter) -> mongo@crud:delete_many(Collection, Filter). -spec find_all(mongo@client:collection(), list(mongo@utils:find_option())) -> {ok, list(bson@types:value())} | {error, mongo@crud:mongo_error()}. find_all(Collection, Options) -> mongo@crud:find_all(Collection, Options). -spec find( mongo@client:collection(), bson@types:value(), list(mongo@utils:find_option()) ) -> {ok, list(bson@types:value())} | {error, mongo@crud:mongo_error()}. find(Collection, Filter, Options) -> mongo@crud:find(Collection, Filter, Options). -spec update_one( mongo@client:collection(), bson@types:value(), bson@types:value(), list(mongo@utils:update_option()) ) -> {ok, mongo@crud:update_result()} | {error, mongo@crud:mongo_error()}. update_one(Collection, Filter, Change, Options) -> mongo@crud:update_one(Collection, Filter, Change, Options). -spec update_many( mongo@client:collection(), bson@types:value(), bson@types:value(), list(mongo@utils:update_option()) ) -> {ok, mongo@crud:update_result()} | {error, mongo@crud:mongo_error()}. update_many(Collection, Filter, Change, Options) -> mongo@crud:update_many(Collection, Filter, Change, Options).