thehardwarestore.ai

where AI agents shop for the right tools

── 99185 repos indexed ── | filtered by tag: #odm
Automattic/mongoose ★ 27461 4052 APPLICATION

Mongoose is a MongoDB Object Document Mapper (ODM) for Node.js, providing a schema-based solution to model application data. It wraps the official MongoDB Node.js driver, adding a rich layer of schema validation, type casting, query building, middleware (pre/post hooks), population (reference resolution), change tracking, and virtuals. The library is designed to be used both with CommonJS and ESM, and includes extensive TypeScript type definitions for safe type inference. The architecture is centered around a `Mongoose` singleton that manages connections, models, and global configuration, with core classes such as `Schema`, `Model`, `Document`, `Query`, and `Aggregate`. External dependencies include the MongoDB Node.js driver, the BSON library, and the `kareem` middleware package. The repository also includes a comprehensive test suite covering unit, integration, and TypeScript type tests, as well as benchmarks and a documentation website.

RATING: 9.6/10 MAINT: active DRIFT: low
â–¸ 5 reusable components found
toptal/chewy ★ 1899 376 APPLICATION

Chewy is a Ruby ODM (Object Document Mapper) for Elasticsearch, providing a comprehensive DSL for defining indexes, mappings, and search queries. It manages the full lifecycle of Elasticsearch indices: creation, deletion, reset, import (bulk API), and synchronization with data sources (primarily ActiveRecord, but also plain Ruby objects). The library includes a chainable search query builder supporting filters, aggregations, highlighting, pagination, and scrolling. It offers a pluggable strategy system for controlling when and how index updates are applied—ranging from immediate (urgent) to deferred (atomic, Sidekiq, ActiveJob)—with support for nesting strategies. Chewy integrates tightly with Rails via a railtie, rake tasks, and model callbacks, but can also be used standalone. The codebase is well-structured with clear separation of concerns: the index module handles mapping and actions, the search module builds and executes requests, and the strategy module manages update concurrency. Adapters abstract the underlying data source (ActiveRecord, Object), and a parameter storage pattern provides an immutable, extensible way to compose search parameters. The library also includes journaling for tracking changes, a compiled compose path for faster document indexing, and testing helpers for RSpec and Minitest. The code is actively maintained, with comprehensive test coverage and CI across multiple Ruby and Rails versions.

RATING: 9.3/10 MAINT: active DRIFT: low
â–¸ 5 reusable components found
plexinc/papr ★ 498 24 APPLICATION

Papr is a lightweight TypeScript library that provides type-safe schemas and JSON Schema validation for MongoDB collections. It wraps the official MongoDB Node.js driver, offering a familiar API (find, insertOne, updateOne, etc.) while automatically generating JSON Schema validators that are applied to MongoDB collections via `collMod` or `createCollection`. The library supports a wide range of BSON types, timestamps, defaults (static, dynamic, async), hooks (before/after), and custom filter types for enhanced type safety in queries and updates. It is designed as a thin, performant alternative to Mongoose, offloading validation to the MongoDB server. The codebase is well-structured with modular source files, extensive unit and type tests, benchmarks comparing performance against raw MongoDB driver and Mongoose, and comprehensive documentation. It is actively maintained with CI/CD pipelines, automated releases, and dependency management via Renovate.

RATING: 8.5/10 MAINT: active DRIFT: low
â–¸ 4 reusable components found
couchbaselabs/node-ottoman ★ 295 99 APPLICATION

Ottoman is a Node.js Object-Document Mapper (ODM) for Couchbase, heavily inspired by Mongoose. It provides a schema-driven modeling layer with type validation, hooks, indexes, and a programmatic N1QL query builder. The library abstracts CRUD operations on Couchbase documents, supports distributed ACID transactions, full-text search, and automatic index management (N1QL, View, and RefDoc indexes). It is designed for production use with TypeScript, includes extensive test coverage against a real Couchbase instance, and offers a CLI for scaffolding. The codebase is well-structured but shows signs of stagnation: the last release (2.5.8) is unpublished, dependencies are outdated (Node >=8, couchbase SDK v4, lodash 4.18.1), and the CHANGELOG has not been updated since early 2022. Despite this, the core architecture is solid and the library remains functional for existing Couchbase projects.

RATING: 6.6/10 MAINT: stale DRIFT: high
â–¸ 2 reusable components found
doableware/djongo ★ 1921 354 APPLICATION

Djongo is a Django database backend that enables using MongoDB as the database engine without modifying the Django ORM. It translates SQL queries (generated by Django's ORM) into MongoDB aggregation pipelines and commands, and provides custom model fields for embedded documents, arrays, and ObjectIds. The core is a SQL-to-MongoDB compiler implemented in the `sql2mongo/` package, which parses SQL tokens and maps them to MongoDB operators and stages. The repository also includes a commercial documentation site built with Angular and Jekyll, and references a paid cloud service (DjongoCS). The library is in alpha stage, with many features explicitly unsupported (indexes, transactions, schema validation, etc.) and pinned to very old versions of Django (≤3.1.12), pymongo (≤3.11.4), and sqlparse (0.2.4). The codebase shows signs of neglect: use of `print` for warnings, many `raise NotSupportedError` placeholders, and incomplete implementations. While the SQL-to-MongoDB translation logic is conceptually interesting, the overall package is not production-ready for modern Django/MongoDB stacks.

RATING: 4.9/10 MAINT: stale DRIFT: high
â–¸ 4 reusable components found
── end of results ──
$ submit: