elixir-mongo/mongodb_ecto
66.8
Adequate · 3 October 2026
2.5k
lines of production code
Elixir
primary language
2
measurements over time
What this system is
This system is a MongoDB adapter for Ecto, enabling Elixir applications to interact with MongoDB databases using standard Ecto query and schema conventions. It provides core data access capabilities including schema definitions, repository operations (insert, update, delete, query), and support for associations and data type mapping. The library also facilitates advanced querying features such as partial nested document updates, regex-based searches, and aggregation pipelines, while ensuring compatibility with modern Elixir and Ecto versions through standardized testing and configuration.
Features
Add simple Ecto example application
Introduces a new example application in the \examples/simple\ directory that demonstrates basic Ecto usage, including a \Weather\ schema with binary ID primary keys, a repository setup, and sample functions for querying, inserting, and updating records.
examples/simple · high confidence
Add simple Ecto/MongoDB example application
A new example application named 'simple' has been added to the examples directory, demonstrating how to use Ecto with the Mongo.Ecto adapter. The example includes configuration for a local MongoDB instance, a sample query function, and associated tests that verify the setup by truncating the repository and running the query.
examples · high confidence
Initial release of Mongo.Ecto adapter with Apache 2.0 license
This entry marks the initial commit of the Mongo.Ecto project, introducing a MongoDB adapter for Ecto. The release includes the core library code, a comprehensive README with usage examples and data type mapping documentation, and a CHANGELOG detailing version history from v0.1.0 through 2.1.1. It also establishes the project's Apache 2.0 license, standardizes code formatting via \.formatter.exs\, and sets up development infrastructure including a \.gitignore\, \docker-compose.yml\ for MongoDB 6.0.6, and GitHub Actions CI. The adapter supports Ecto 3.12+ and MongoDB versions 5.0, 6.0, and 7.0, having switched its underlying driver from \mongodb\ to \mongodb\_driver\ 1.4 in version 2.0.0.
(repo-wide) · high confidence
Support for partial nested document updates and regex queries
The Mongo.Ecto adapter now allows updating specific fields within nested documents and arrays using the new \change\_map/2\ and \change\_array/2\ helper functions, which introduce \ChangeMap\ and \ChangeArray\ Ecto types to handle partial updates. Additionally, users can now perform case-insensitive or pattern-based searches using the \regex/2\ helper, which wraps patterns in \Mongo.Ecto.Regex\ structs for proper BSON serialization.
_lib/mongo\ecto · high confidence
Removals
Removed default application configuration file
The \config/config.exs\ file has been deleted from the project. This removes the default configuration file that previously handled application and dependency settings via the Mix.Config module, including any commented-out examples for logger formatting or environment-specific configuration imports.
config · high confidence
Behavioural changes
Rename module from MongodbEcto to Mongo.Ecto
The library module has been renamed from \MongodbEcto\ to \Mongo.Ecto\. Users must update their repository configurations to use \adapter: Mongo.Ecto\ and update any direct references to the old module name in their code.
lib · high confidence
Test coverage
Added integration tests for Ecto associations, repository operations, and data types; Added integration tests for Mongo.Ecto and updated test configuration; Added test coverage for migrations, query normalization, and streaming.
Dependencies
Major dependency upgrade and project modernization
The project has been upgraded to require Elixir 1.7+ and Ecto 3.12, replacing the legacy \mongodb\ driver with \mongodb\_driver\ (v1.4+) and introducing \telemetry\ for observability. Development tooling is now standardized with Credo, Dialyxir, ExDoc, and ExCoveralls, while the module namespace was changed from \MongodbEcto\ to \Mongo.Ecto\ and the OTP application configuration was updated to use \extra\_applications\. An example application (\examples/simple\) was also added to demonstrate usage.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 67 → 67 (-0.4)
- Rubric changed (rubric-2026.09.15 → rubric-2026.10.1) — scores are not directly comparable.
Lenses
- Code Health 86 → 86 (+0.0)
- Architecture 100 → 100 (+0.0)
- Maturity 53 → 53 (+0.0)
- Readiness 69 → 68 (-1.9)
- Security 96 → 97 (+0.6)
Resolved (3)
- Documentation: no contributor guidance (README.md)
- Documentation: no installation or build instructions (README.md)
- Documentation: no usage examples (README.md)
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
elixir-mongo/mongodb_ecto was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 3 October 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 6e114c064bd39b5acd5c17f92979ba9313257cf2 — the exact code this score is about.
- Scored under rubric-2026.10.1 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-8fe32cd45d00.