{"id":13480685,"url":"https://github.com/stijnsanders/TMongoWire","last_synced_at":"2025-03-27T11:30:49.998Z","repository":{"id":1212829,"uuid":"1128404","full_name":"stijnsanders/TMongoWire","owner":"stijnsanders","description":"Delphi MongoDB driver","archived":false,"fork":false,"pushed_at":"2022-08-08T19:54:43.000Z","size":231,"stargazers_count":102,"open_issues_count":6,"forks_count":37,"subscribers_count":27,"default_branch":"master","last_synced_at":"2024-10-30T14:42:27.544Z","etag":null,"topics":["dbconnector","mongodb-driver"],"latest_commit_sha":null,"homepage":"","language":"Pascal","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/stijnsanders.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.txt","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2010-12-01T10:55:43.000Z","updated_at":"2023-12-01T21:14:03.000Z","dependencies_parsed_at":"2022-08-08T21:15:10.295Z","dependency_job_id":null,"html_url":"https://github.com/stijnsanders/TMongoWire","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stijnsanders%2FTMongoWire","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stijnsanders%2FTMongoWire/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stijnsanders%2FTMongoWire/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stijnsanders%2FTMongoWire/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stijnsanders","download_url":"https://codeload.github.com/stijnsanders/TMongoWire/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245835922,"owners_count":20680292,"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":["dbconnector","mongodb-driver"],"created_at":"2024-07-31T17:00:43.615Z","updated_at":"2025-03-27T11:30:49.644Z","avatar_url":"https://github.com/stijnsanders.png","language":"Pascal","funding_links":[],"categories":["Libraries"],"sub_categories":["Delphi"],"readme":"# Delphi MongoDB Driver\r\n\r\nA Delphi driver to access a mongoDB server.\r\nIt uses [jsonDoc.pas](https://github.com/stijnsanders/jsonDoc#jsondoc) to store JSON documents. `IJSONDocument`  maps variables onto Delphi variables of type Variant, which resembles\r\nthe loose typing of JavaScript.\r\nThere are three main units and two main classes to enable access to a mongo DB server:\r\n\r\n## jsonDoc.pas\r\n\r\nDeclares `IJSONDocument` and related interfaces, and the `JSON` function to create instances, optionally populated with data. `IJSONDocument` instances hold the data of a 'document', the basic unit of data mongoDB works with.\r\nA variable of type Variant can hold an interface reference to an instance, which enables embedding documents.\r\nUse Variant arrays (or `IJSONArray`) to store arrays of values in a document.\r\n\r\nSee also https://github.com/stijnsanders/jsonDoc#jsondoc\r\n\r\n## bsonTools.pas\r\n\r\nDeclares the `LoadBSON` and `SaveBSON` procedures.\r\n\r\nAlso declares the `IBSONDocArray` interface which can improve processing arrays of embedded documents by keeping a reference to the underlying data stream, and only loading one document at a time, possibly re-using allocated memory for the same keys if the documents have a similar structure.\r\n**Attention:** take care to keep the TStream instance in existance for as long as you're planning to use the linked `IBSONDocArray` instance. Failure to do so can lead to _privileged instruction_ or _access violation_ errors.\r\n\r\n## mongoWire.pas\r\n\r\nUse an object of class `TMongoWire` to connection to a mongoDB server. It supports getting single items, performing inserts, updates and deletes.\r\n\r\nUse objects of class `TMongoWireQuery` to query to a mongoDB server. It handles the cursor and subsequent requests to the server to get more data when needed.\r\n\r\n## mongoID.pas\r\n\r\nUse function `mongoObjectId` to construct a new MongoDB-style id value.\r\n\r\n## mongoAuth3.pas\r\n\r\nUse procedure `MongoWireAuthenticate` to authenticate a newly connected `TMongoWire` instance. As of version 3.0 MongoDB uses a slightly modified `SCRAM-SHA-1` to vastly improve security with access control. (Use `mongoAuth.pas` for MongoDB versions prior to 3.0.)\r\n\r\n## mongoStream.pas\r\n\r\nUse `TMongoStream` to load and store files in MongoDB. Internally `.files` and `.chunks` collections are used to store the data.\r\n\r\n## examples\r\n\r\nSee the example projects for straight-forward demonstration applications that use TMongoWire.\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstijnsanders%2FTMongoWire","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstijnsanders%2FTMongoWire","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstijnsanders%2FTMongoWire/lists"}