{"id":42507,"library":"classy-mongo","title":"Classy Mongo","description":"Classy Mongo (v0.0.14) is a lightweight, class-based ODM for MongoDB, providing a simple way to define models using ES6 classes with property prototypes for schema definition. It offers methods like `findById`, `insertOne`, and static query helpers. Released infrequently, it is a minimal alternative to Mongoose, suitable for small projects or prototypes.","status":"active","version":"0.0.14","language":"javascript","source_language":"en","source_url":"https://github.com/PivotStick/classy-mongo","tags":["javascript"],"install":[{"cmd":"npm install classy-mongo","lang":"bash","label":"npm"},{"cmd":"yarn add classy-mongo","lang":"bash","label":"yarn"},{"cmd":"pnpm add classy-mongo","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"peer dependency for MongoDB driver","package":"mongodb","optional":false}],"imports":[{"note":"The package supports both ESM and CJS, but the default import is for the main object.","wrong":"const classy = require('classy-mongo')","symbol":"default export","correct":"import classy from 'classy-mongo'"},{"note":"Named export; available in both ESM and CJS.","wrong":"const Model = require('classy-mongo').Model","symbol":"Model","correct":"import { Model } from 'classy-mongo'"},{"note":"`connect` is a named export, not a default one.","wrong":"import connect from 'classy-mongo'","symbol":"connect","correct":"import { connect } from 'classy-mongo'"}],"quickstart":{"code":"import { connect, Model } from 'classy-mongo';\n\nawait connect('mongodb://localhost:27017/mydb');\n\nclass Book extends Model {\n  name = String.prototype;\n  pages = [String.prototype];\n  isSpecial = Boolean.prototype;\n\n  get pageCount() {\n    return this.pages.length;\n  }\n\n  static getSpecials() {\n    return this.find({ isSpecial: true });\n  }\n}\n\nconst result = await Book.insertOne({ name: 'Test', pages: ['page1'] });\nconst book = await Book.findById(result.insertedId);\nconsole.log(book.pageCount);","lang":"typescript","description":"Defines a Book model class with typed properties, inserts a document, retrieves it by ID, and accesses a computed property."},"warnings":[{"fix":"Use String.prototype instead of String for default values.","message":"Property types must be prototypes (e.g., String.prototype, Boolean.prototype), not constructors.","severity":"gotcha","affected_versions":">=0.0.1"},{"fix":"Define array fields as [String.prototype], not Arrays of plain strings.","message":"Array types must be wrapped in brackets with the prototype inside: [String.prototype].","severity":"gotcha","affected_versions":">=0.0.1"},{"fix":"Use `mongodb` driver directly for advanced connection options, or pass a connection string only.","message":"The `classy.connect()` method does not accept options (e.g., useNewUrlParser).","severity":"deprecated","affected_versions":">=0.0.1"}],"env_vars":null,"search_vec":"'altern':47 'base':11 'class':10,24 'class-bas':9 'classi':1,3 'defin':20 'definit':30 'es6':23 'findbyid':35 'helper':40 'infrequ':42 'inserton':36 'javascript':56 'lightweight':8 'like':34 'method':33 'minim':46 'model':21 'mongo':2,4 'mongodb':14 'mongoos':49 'odm':12 'offer':32 'project':53 'properti':26 'prototyp':27,55 'provid':15 'queri':39 'releas':41 'schema':29 'simpl':17 'small':52 'static':38 'suitabl':50 'use':22 'v0.0.14':5 'way':18","created_at":"2026-06-05T16:55:19.194237+00:00","updated_at":"2026-06-05T16:55:19.194237+00:00","problems":[{"fix":"Define a class that extends Model, e.g., class Book extends Model { ... }.","cause":"Using Model as a function instead of extending it as a class.","error":"TypeError: Class constructor Model cannot be invoked without 'new'"},{"fix":"Use String.prototype for type definition.","cause":"Setting a field to a constructor like String instead of String.prototype.","error":"MongoError: cannot use 'prototype' property on non-object"}],"ecosystem":"npm","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":null,"cli_version":null,"type":"library","homepage":"https://github.com/PivotStick/classy-mongo#readme","github":"https://github.com/PivotStick/classy-mongo","docs":null,"changelog":null,"pypi":null,"npm":"classy-mongo","openapi_spec":null,"status_page":null,"smithery":null,"categories":["database"],"base_url":null,"auth_type":null,"provenance":{"verified_status":null,"verified_at":null,"last_verified":"2026-06-05","next_check":"2026-09-03","install_tag":null}}