{"id":21428331,"url":"https://github.com/skiddow/mongocrud","last_synced_at":"2026-04-20T09:03:15.917Z","repository":{"id":62738403,"uuid":"562121813","full_name":"SKIDDOW/MongoCrud","owner":"SKIDDOW","description":"Simple C# class for managing MongoDB collections","archived":false,"fork":false,"pushed_at":"2023-03-13T07:43:31.000Z","size":6646,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-04-27T08:38:01.518Z","etag":null,"topics":["csharp","dotnet","dotnet6","mongocrud","mongodb","mongodb-crud","nosql-database"],"latest_commit_sha":null,"homepage":"","language":"C#","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/SKIDDOW.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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":"2022-11-05T11:32:32.000Z","updated_at":"2023-01-19T05:06:31.000Z","dependencies_parsed_at":"2024-11-22T22:12:51.600Z","dependency_job_id":"0f87fdd0-3fd3-482e-8aa3-e48bf8e46468","html_url":"https://github.com/SKIDDOW/MongoCrud","commit_stats":{"total_commits":79,"total_committers":1,"mean_commits":79.0,"dds":0.0,"last_synced_commit":"ce1b2cecf059f69f2d9d8ac6af0ad001e27fae18"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SKIDDOW%2FMongoCrud","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SKIDDOW%2FMongoCrud/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SKIDDOW%2FMongoCrud/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SKIDDOW%2FMongoCrud/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SKIDDOW","download_url":"https://codeload.github.com/SKIDDOW/MongoCrud/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243934273,"owners_count":20371156,"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","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":["csharp","dotnet","dotnet6","mongocrud","mongodb","mongodb-crud","nosql-database"],"created_at":"2024-11-22T22:12:47.165Z","updated_at":"2026-04-20T09:03:15.861Z","avatar_url":"https://github.com/SKIDDOW.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"![MongoCrud](https://raw.githubusercontent.com/skiddow/MongoCrud/main/assets/banner.jpg)\n# MongoCrud ➕ 🔄️ ❌\nMongoCrud is a simple c# class for MongoDB CRUD operations.\n\n![Nuget](https://img.shields.io/nuget/v/MongoCrud?style=for-the-badge)\n![Nuget](https://img.shields.io/nuget/dt/MongoCrud?label=Downloads\u0026style=for-the-badge)\n\n## Features\n- Create, read, update and delete documents\n    - Create unique records\n    - Case-Insensitive search\n    - Read by index/Id\n    - Delete by index/Id\n    - Search between dates\n\n## Installation\n- You can search for 'MongoCrud' in NuGet Pakage Manager in Visual Studio.\n- Or you can use .NET CLI\n    ```\n    dotnet add package MongoCrud\n    ```\n---\n\n## Usage\n\nEmployee Model\n\n```c#\nusing MongoDB.Bson;\nusing MongoDB.Bson.Serialization.Attributes;\n\npublic  class Employee\n{\n    [BsonId]\n    [BsonRepresentation(BsonType.ObjectId)]\n    public ObjectId Id { get; set; }\n\n    public string Name { get; set; }\n\n    public DateTime Birthday { get; set; }\n}\n\n```\n\n### Open connection to MongoDB (using statement)\n\n```c#\nusing MongoDB;\n```\n\n```c#\nstring connectionString = \"mongodb://localhost:27017\";\nstring databaseName = \"EmployeeDB\";\n\nusing (Crud db = new Crud(connectionString, databaseName))\n{\n    // do your things here ...\n}\n\n```\n---\n\n### Insert Employee data\n\n```c#\nvar emp = new Employee()\n{\n    Name = \"Jone Doe\",\n    EmpID = 1000,\n    Birthday = Convert.ToDateTime(\"1981-04-13\")\n};\nawait db.InsertRecord(\"Employee\", emp);\n\n```\n---\n\n### Insert unique record\n\n```c#\nvar emp = new Employee()\n{\n    Name = \"Jone Doe\",\n    EmpID = 1000, // Unique ID\n    Birthday = Convert.ToDateTime(\"1981-04-13\")\n};\nawait db.InsertUniqRecord(\"Employee\", emp, \"EmpID\");\n```\n---\n\n### Load all records of a collection\n\n```c#\nvar rec = await db.LoadRecords\u003cEmployee\u003e(\"Employee\");\n```\n---\n\n### Load records by index\n\n```c#\nvar rec = db.LoadRecordByIndex\u003cEmployee\u003e(\"Employee\", \"Name\", \"Jone Doe\");\n```\n---\n\n### Load one record by index\n\n```c#\nvar rec = db.LoadOneRecordByIndex\u003cEmployee\u003e(\"Employee\", \"Name\", \"Jone Doe\");\n```\n---\n\n### Load a record by Id\nFirst, we have to get ObjectId before doing this. To get an ObjectId you can use any method as shown in above.\n```c#\nObjectId ObjectID = new ObjectId(\"6366675caf5305273398cfbd\");\n```\n\n```c#\nvar rec = db.LoadRecordById\u003cEmployee\u003e(\"Employee\", ObjectID);\n```\n---\n\n### Search case\nBelow example will display all records from Employee collection, which Name starts from 'J'\n```c#\nvar rec = db.SearchCase\u003cEmployee\u003e(\"Employee\", \"Name\", \"J\");\n```\n---\n\n### Search between two dates\nThis example will display Employees who has birthday between selected dates.\n```c#\nDateTime startDate = Convert.ToDateTime(\"1980-04-20\");\nDateTime endDate = Convert.ToDateTime(\"1990-04-20\");\n\nvar rec = await db.LoadBetweenDates\u003cEmployee\u003e(\"Employee\", \"Birthday\", startDate, endDate);\n```\n---\n\n### Delete all records by index\nThis will delete all records where EmpID is, '1000'. However, if EmpID is unique this will also delete a single record.\n```c#\ndb.DeleteRecordByIndex\u003cEmployee\u003e(\"Employee\", \"EmpID\", \"1000\");\n```\n---\n\n### Delete a record\nTo delete a record we have to get ObjectId\n```c#\ndb.DeleteRecord\u003cEmployee\u003e(\"Employee\", ObjectID);\n```\n---\n\n### Updating a record\nFirst we need to load record, and then update.\n```c#\nvar oneRec = db.LoadRecordById\u003cEmployee\u003e(\"Employee\", ObjectID);\noneRec.Id = ObjectID; // or, oneRec.Id = oneRec.Id;\noneRec.Name = \"Jone Doe Smith\"\n```\nThis will update Employee Name.\n\n```c#\ndb.UpsertRecord(\"Employee\", oneRec.Id, oneRec);\n```\n---\n## Bonus configuration for database connection.\n\nCreate a new class name, `dbConn`\n\n```c#\nnamespace MongoDB;\npublic class dbConn\n{\n    public static string connString = \"mongodb://localhost:27017\";\n    public static string dbName = \"EmployeeDB\";\n}\n```\nAnd then you can run CRUD operations, as below\n\n```c#\nusing MongoDB;\n\nusing (Crud db = new Crud(dbConn.connString, dbConn.dbName))\n{\n    // do your things here .... \n}\n```\n---\n## A full example for insert\n\n```c#\nusing MongoDB;\n\npublic class MyProject\n{\n    public void InsertData()\n    {\n        using (Crud db = new Crud(dbConn.connString, dbConn.dbName))\n        {\n            var emp = new Employee()\n            {\n                Name = \"Jone Doe\",\n                EmpID = 1000, // Unique ID\n                Birthday = Convert.ToDateTime(\"1981-04-13\")\n            };\n            await db.InsertUniqRecord(\"Employee\", emp, \"EmpID\");\n        }\n    }\n}\n```\n\n# ❤️😍\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fskiddow%2Fmongocrud","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fskiddow%2Fmongocrud","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fskiddow%2Fmongocrud/lists"}