{"id":29661699,"url":"https://github.com/jessicamrbr/collql","last_synced_at":"2026-04-19T14:37:08.737Z","repository":{"id":285809689,"uuid":"959437125","full_name":"jessicamrbr/CollQL","owner":"jessicamrbr","description":"CollQL is a Dart library inspired by MongoDB queries, designed for expressive and flexible in-memory collection manipulation and filtering.","archived":false,"fork":false,"pushed_at":"2025-07-19T15:13:55.000Z","size":1684,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-19T18:32:02.728Z","etag":null,"topics":["dart","dsl","library","mongo","query"],"latest_commit_sha":null,"homepage":"https://jessicamrbr.github.io/CollQL/","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jessicamrbr.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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,"zenodo":null}},"created_at":"2025-04-02T19:29:26.000Z","updated_at":"2025-07-19T15:13:58.000Z","dependencies_parsed_at":"2025-07-19T16:18:10.870Z","dependency_job_id":"fa204855-d3fa-4872-9bfe-f45ea5a1e948","html_url":"https://github.com/jessicamrbr/CollQL","commit_stats":null,"previous_names":["jessicamrbr/collql"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jessicamrbr/CollQL","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jessicamrbr%2FCollQL","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jessicamrbr%2FCollQL/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jessicamrbr%2FCollQL/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jessicamrbr%2FCollQL/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jessicamrbr","download_url":"https://codeload.github.com/jessicamrbr/CollQL/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jessicamrbr%2FCollQL/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266473112,"owners_count":23934477,"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-07-22T02:00:09.085Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"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":["dart","dsl","library","mongo","query"],"created_at":"2025-07-22T10:07:48.310Z","updated_at":"2026-04-19T14:37:08.690Z","avatar_url":"https://github.com/jessicamrbr.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CollQL\n\nA powerful and expressive Dart library for in-memory collection querying and manipulation, inspired by MongoDB. CollQL makes it easy to filter, update, and transform your data using a familiar, fluent API—perfect for Dart and Flutter projects.\n\n[![pub package](https://img.shields.io/pub/v/collql.svg)](https://pub.dev/packages/collql)\n[![GitHub stars](https://img.shields.io/github/stars/jessicamrbr/CollQL?style=social)](https://github.com/jessicamrbr/CollQL)\n\n# Overview\n\nCollQL is a Dart library inspired by MongoDB queries, designed for expressive and flexible in-memory collection manipulation and filtering.\n- 🔍 **Filters**: Create complex queries using logical and comparison operators.\n- ✏️ **Modifiers**: Update collections and documents with MongoDB-like operations.\n- 🧩 **Extensions**: Utility methods to simplify usage with Dart collections.\n- 🍰 **Proxies**: Builders for fluent construction of filters and modifiers.\n\nFor a comprehensive overview of all features, examples, and API references, please see the [official documentation](https://jessicamrbr.github.io/CollQL/).\n\n# Getting Started\n\n```dart\nimport 'package:collql/collql.dart';\n\nfinal List\u003cDocument\u003e data = [\n  Document({'name': \"john\", 'age': 45}),\n  Document({'name': \"bob\", 'age': 21}),\n  Document({'name': \"alice\", 'age': 60}),\n  Document({'name': \"ted\", 'age': 10}),\n];\n\nfinal filter = and([\n  'age'.gte(18),\n  'age'.lte(50)\n]);\n\nfinal List\u003cDocument\u003e result = CollectionQL(data).fetch(filter).toList();\nassert(result.length == 2); // true\n```\n\n## Quick Guide\n\n### Documents\nThese are the basic data structure in CollQL. Each document is represented by an object containing key-value pairs, similar to a map or JSON object. [[Read more](/reference/00000-manipulating)]\n\n```dart\nimport 'package:collql/collql.dart';\n\nfinal doc = Document({\n  \"name\": \"John\",\n  \"age\": 30\n});\n\nassert(doc.get('/name') == \"John\"); // true\ndoc.set('/age', 31);\nassert(doc.get('/age') == 31); // true\n```\n\n### Filters\nAllow you to select documents from a collection or test values based on conditions. They are inspired by MongoDB operators. [[Read more](/reference/00100-filters)]\n\n```dart\nimport 'package:collql/collql.dart';\n\nfinal List\u003cDocument\u003e data = [\n  Document({'name': \"john\", 'age': 45}),\n  // ... //\n];\n\nfinal query = and([\n  'age'.gte(18),\n  'age'.lte(50)\n]);\n\nassert(query.apply(data[0]) == true);  // true\n```\n\nSome operators: `eq`, `notEq`, `gt`, `gte`, `lt`, `lte`, `and`, `or`\n\n### Modifiers\nAllow you to update documents declaratively. [[Read more](/reference/00200-modifiers)]\n\n```dart\nimport 'package:collql/collql.dart';\n\nfinal List\u003cDocument\u003e data = [\n  Document({'name': \"john\", 'age': 45}),\n  // ... //\n];\n\nfinal doc = Document({ \"name\": \"john\", \"age\": 45 });\nfinal update = 'name'.rename('fullName');\nupdate.apply(doc);\nassert(doc.get('/name') == null); // true\nassert(doc.get('/fullName') != null); // true\nassert(data[0].get('/name') == doc.get('/fullName')); // true\n```\n\nSome modifiers: `get`, `set`, `unset`, `rename`, `push`, `pull`\n\n## Credits\nCollQL is inspired by [Nitrite](https://nitrite.dizitart.com/flutter-sdk/getting-started/index.html), and combines concepts from both\nMongoDB and Dart's collection manipulation capabilities. It aims to provide a seamless and expressive way to work with in-memory data structures.\n\n## License\n\nCollQL is distributed under the MIT License, allowing you to use, modify, and distribute the library freely in your own projects. See the [LICENSE](LICENSE) file for details.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjessicamrbr%2Fcollql","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjessicamrbr%2Fcollql","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjessicamrbr%2Fcollql/lists"}