Mongoid vs Mongoose: What are the differences?
Mongoid: Ruby ODM framework for MongoDB. The philosophy of Mongoid is to provide a familiar API to Ruby developers who have been using Active Record or Data Mapper, while leveraging the power of MongoDB's schemaless and performant document-based design, dynamic queries, and atomic modifier operations; Mongoose: MongoDB object modeling designed to work in an asynchronous environment. Let's face it, writing MongoDB validation, casting and business logic boilerplate is a drag. That's why we wrote Mongoose. Mongoose provides a straight-forward, schema-based solution to modeling your application data and includes built-in type casting, validation, query building, business logic hooks and more, out of the box.
Mongoid and Mongoose can be primarily classified as "Object Document Mapper (ODM)" tools.
Mongoid and Mongoose are both open source tools. Mongoose with 18.8K GitHub stars and 2.62K forks on GitHub appears to be more popular than Mongoid with 21 GitHub stars and 14 GitHub forks.
According to the StackShare community, Mongoose has a broader approval, being mentioned in 85 company stacks & 88 developers stacks; compared to Mongoid, which is listed in 7 company stacks and 7 developer stacks.
What is Mongoid?
What is Mongoose?
Want advice about which of these to choose?Ask the StackShare community!
What are the cons of using Mongoid?
I inherited a stack where Mongoose is used in the database layer.
It's been several months and it's still the single highest source of daily WT*s in my backend development. The API is full of irregularities and the design is a poor mix of object-orientation and stateful objects with a lot implicit behavior. Mongoose made the choices of taking the worst parts of ORMs and using them in a context where the benefits of ORMs don't apply. The only reason I'm keeping it is its handy
.populate() feature. Expect bad surprises!