{"id":18435315,"url":"https://github.com/mnie/bagnodb","last_synced_at":"2025-10-04T01:47:02.033Z","repository":{"id":116098613,"uuid":"249056753","full_name":"MNie/BagnoDB","owner":"MNie","description":"F# wrapper for MongoDB","archived":false,"fork":false,"pushed_at":"2023-03-04T10:10:35.000Z","size":56,"stargazers_count":15,"open_issues_count":0,"forks_count":3,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-09-16T08:34:56.797Z","etag":null,"topics":["fsharp","mongodb","wrapper"],"latest_commit_sha":null,"homepage":null,"language":"F#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MNie.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-03-21T20:37:55.000Z","updated_at":"2023-05-13T18:32:59.000Z","dependencies_parsed_at":null,"dependency_job_id":"cf9a3da7-c95e-4b8c-8416-76e4138601d5","html_url":"https://github.com/MNie/BagnoDB","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/MNie/BagnoDB","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MNie%2FBagnoDB","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MNie%2FBagnoDB/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MNie%2FBagnoDB/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MNie%2FBagnoDB/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MNie","download_url":"https://codeload.github.com/MNie/BagnoDB/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MNie%2FBagnoDB/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278254467,"owners_count":25956598,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-03T02:00:06.070Z","response_time":53,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["fsharp","mongodb","wrapper"],"created_at":"2024-11-06T06:07:52.963Z","updated_at":"2025-10-04T01:47:02.029Z","avatar_url":"https://github.com/MNie.png","language":"F#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# BagnoDB \n* NuGet Status\n\n    |   | BagnoDB | BagnoDB.Serializator |\n    |---|---|---|\n    | nuget | [![NuGet](https://buildstats.info/nuget/BagnoDB?includePreReleases=true)](https://www.nuget.org/packages/BagnoDB) | [![NuGet](https://buildstats.info/nuget/BagnoDB.Serializator?includePreReleases=true)](https://www.nuget.org/packages/BagnoDB.Serializator) |\n\n\nF# wrapper over MongoDB.Driver.\n\n## How to build configuration.\n\n```fsharp\nlet collection = \"bagno\"\nlet database = \"bagnoDBTests\"\n\nlet config = {\n  host = \"0.0.0.0\"\n  port = 27017\n  user = Some \"admin\"\n  password = Some \"123\"\n}\n  \nlet configuration =\n  Connection.host config\n  |\u003e Connection.database database\n  |\u003e Connection.collection collection\n```\n\n## How to add conventions.\n\n```fsharp\nConventions.create\n|\u003e Conventions.add (OptionConvention ())\n|\u003e Conventions.add (RecordConvention ())\n|\u003e Conventions.build \"F# Type Conventions\"\n```\n\n## How to add serialization.\n\n```fsharp\nSerialization.bson (BagnoSerializationProvider ())\n```\n\n## How to build filters.\n\nAvailable options:\n- `eq` - equal to $value,\n- `gte` - greater than or equal to $value,\n- `gt` - greater than $value,\n- `lt` - less than $value,\n- `lte` - less than or equal $value,\n- `not` - negation of filter,\n- `empty` - empty filter.\n\nAdditionally filters could be combine via:\n- `\u0026\u0026\u0026` or `Filter.and` - equivalent of `and` operator between filters,\n- `|||` or `Filter.or` - equivalent of `or` operator between filters.\n\n```fsharp\nlet filter =\n  Filter.eq (fun (o: BagnoTest) -\u003e o.data) \"Bagno\"\n  |\u003e (|||) (Filter.lt (fun (o: BagnoTest) -\u003e o.value) 2137)\n```\n\n## How to run query against MongoDB\n\nAvailable options:\n- `filter` - get `n` results based on passed filter,\n- `delete` - delete record based on a filter,\n- `deleteMany` - delete records based on a filter,\n- `upsert` - update a record based on a filter,\n- `insert` - insert record,\n- `insertMany` - insert records,\n- `getAll` - get all results based on passed filter options.\n\n```fsharp\nlet filter = Filter.eq (fun (o: BagnoTest) -\u003e o.data) \"mango\"\nlet filterOpt = FindOptions\u003cBagnoTest\u003e()\nasync {\n  let! result =\n    Connection.host config\n    |\u003e Connection.database database\n    |\u003e Connection.collection collection\n    |\u003e Query.filter CancellationToken.None filterOpt filter\n\n  return result\n} |\u003e Async.StartAsTask\n```\n\n# BagnoDB.Serializator\n\nInspired by [this old lib](https://github.com/NamelessInteractive/NamelessInteractive.FSharp/tree/master/NamelessInteractive.FSharp.MongoDB) which seems to be not maintain any more.\n\n## Available conventions:\n\n- [Option](https://docs.microsoft.com/en-us/dotnet/fsharp/language-reference/options),\n- [Record](https://docs.microsoft.com/en-us/dotnet/fsharp/language-reference/records).\n\n## Available serializers:\n\n- [Option](https://docs.microsoft.com/en-us/dotnet/fsharp/language-reference/options),\n- [Discriminated Unions](https://docs.microsoft.com/en-us/dotnet/fsharp/language-reference/discriminated-unions),\n- [Record](https://docs.microsoft.com/en-us/dotnet/fsharp/language-reference/records).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmnie%2Fbagnodb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmnie%2Fbagnodb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmnie%2Fbagnodb/lists"}