-module(mongo). -compile([no_auto_import, nowarn_unused_vars]). -export([connect/1, collection/2, count_all/1, count/2, find_by_id/2, insert_one/2, insert_many/2, find_all/2, delete_one/2, delete_many/2, find_many/3, find_one/3, update_one/4, update_many/4]). -spec connect(binary()) -> {ok, mongo@client:database()} | {error, nil}. connect(Uri) -> mongo@client:connect(Uri). -spec collection(mongo@client:database(), binary()) -> mongo@client:collection(). collection(Db, Name) -> _pipe = Db, mongo@client:collection(_pipe, Name). -spec count_all(mongo@client:collection()) -> {ok, integer()} | {error, mongo@utils:mongo_error()}. count_all(Collection) -> _pipe = Collection, mongo@crud:count_all(_pipe). -spec count(mongo@client:collection(), bson@types:value()) -> {ok, integer()} | {error, mongo@utils:mongo_error()}. count(Collection, Filter) -> _pipe = Collection, mongo@crud:count(_pipe, Filter). -spec find_by_id(mongo@client:collection(), binary()) -> {ok, bson@types:value()} | {error, mongo@utils:mongo_error()}. find_by_id(Collection, Id) -> _pipe = Collection, mongo@crud:find_by_id(_pipe, Id). -spec insert_one(mongo@client:collection(), bson@types:value()) -> {ok, bson@types:value()} | {error, mongo@utils:mongo_error()}. insert_one(Collection, Doc) -> _pipe = Collection, mongo@crud:insert_one(_pipe, Doc). -spec insert_many(mongo@client:collection(), list(bson@types:value())) -> {ok, mongo@crud:insert_result()} | {error, mongo@utils:mongo_error()}. insert_many(Collection, Docs) -> _pipe = Collection, mongo@crud:insert_many(_pipe, Docs). -spec find_all(mongo@client:collection(), list(mongo@utils:find_option())) -> {ok, list(bson@types:value())} | {error, mongo@utils:mongo_error()}. find_all(Collection, Options) -> _pipe = Collection, mongo@crud:find_all(_pipe, Options). -spec delete_one(mongo@client:collection(), bson@types:value()) -> {ok, integer()} | {error, mongo@utils:mongo_error()}. delete_one(Collection, Filter) -> _pipe = Collection, mongo@crud:delete_one(_pipe, Filter). -spec delete_many(mongo@client:collection(), bson@types:value()) -> {ok, integer()} | {error, mongo@utils:mongo_error()}. delete_many(Collection, Filter) -> _pipe = Collection, mongo@crud:delete_many(_pipe, Filter). -spec find_many( mongo@client:collection(), bson@types:value(), list(mongo@utils:find_option()) ) -> {ok, list(bson@types:value())} | {error, mongo@utils:mongo_error()}. find_many(Collection, Filter, Options) -> _pipe = Collection, mongo@crud:find_many(_pipe, Filter, Options). -spec find_one( mongo@client:collection(), bson@types:value(), bson@types:value() ) -> {ok, bson@types:value()} | {error, mongo@utils:mongo_error()}. find_one(Collection, Filter, Projection) -> _pipe = Collection, mongo@crud:find_one(_pipe, Filter, Projection). -spec update_one( mongo@client:collection(), bson@types:value(), bson@types:value(), list(mongo@utils:update_option()) ) -> {ok, mongo@crud:update_result()} | {error, mongo@utils:mongo_error()}. update_one(Collection, Filter, Change, Options) -> _pipe = Collection, mongo@crud:update_one(_pipe, 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@utils:mongo_error()}. update_many(Collection, Filter, Change, Options) -> _pipe = Collection, mongo@crud:update_many(_pipe, Filter, Change, Options).