Skip to content
Agencei

Data & AI

MongoDB: document modeling, indexes, performance and Atlas

MongoDB is a document database suited to data with variable structure, catalogs, event logs and write-heavy applications. Its flexibility is also its trap: without careful modeling and proper indexes, performance degrades quickly and hosting costs climb.

This service is for teams running MongoDB in production, on MongoDB Atlas or self-hosted, who face slowness, high costs or difficulty evolving their schema. It also covers new projects hesitating between MongoDB and a relational engine, and migrations in either direction.

We work on modeling (embedded versus referenced documents, document size, patterns such as bucket or outlier), composite and partial indexes, aggregation pipelines, cluster sizing, sharding when it is genuinely needed, and monitoring with Atlas tools or Prometheus.

When do we step in?

Queries without indexes (COLLSCAN)

Logs show full collection scans. Every query reads millions of documents, CPU load climbs and Atlas suggests upgrading the cluster tier when a composite index would be enough.

Documents that grew too large

Embedded arrays grow without limit: comments, history, events. Documents approach the size limit, updates become expensive and working memory is no longer sufficient.

Rising Atlas bill

The cluster was oversized to compensate for inefficient queries. Fixing indexes and modeling often allows stepping down a tier without losing performance.

Migration to or from MongoDB

You are moving from MySQL or PostgreSQL to MongoDB for a specific need, or the other way around because your data turned out to be highly relational. Both cases require a model conversion, not a simple export.

Slow aggregation pipelines

Your reports rely on complex aggregations that take tens of seconds. Stage order, index usage in $match and $sort, and sometimes materialized views change everything.

How we work

  1. 1

    Access pattern analysis

    We study the profiler, execution plans (explain), existing indexes and their usage, document size and distribution, and cluster metrics.

  2. 2

    Modeling

    We adapt the schema to real access patterns: embedding or referencing, array splitting, bucket, computed or schema versioning patterns. Changes are applied gradually with idempotent migration scripts.

  3. 3

    Indexes and queries

    Composite indexes in the right order, partial indexes, TTL indexes for temporary data, removal of unused indexes, rewriting aggregations so they use indexes from the first stages.

  4. 4

    Sizing and operations

    Choice of Atlas tier or replica set topology, backups and point-in-time restore, alerts, and sharding only when volume or throughput require it.

  5. 5

    Migration

    Model conversion, initial load, continuous synchronization through change streams or a change data capture tool, data verification and a short cutover.

Technologies we use

  • MongoDB
  • MongoDB Atlas
  • Mongoose and Prisma
  • PyMongo and Motor
  • Change Streams
  • MongoDB Compass
  • mongodump and mongorestore
  • Atlas Search
  • Prometheus and Grafana

Why choose Agencei?

  • Modeling before infrastructure

    We fix the model and indexes first, because that is where most of the gains are. Scaling up the cluster is the last option, not the first.

  • An honest view on engine choice

    We also use PostgreSQL and MySQL. If your data is relational, we will tell you rather than force MongoDB.

  • Integration with your applications

    We develop in Node.js and Python with Mongoose, Prisma or PyMongo, and we know where ORMs generate inefficient queries.

  • Gradual migrations

    Idempotent migration scripts, document versioning and short cutovers: we do not ask you to stop the application for hours.

In brief

What is this service?
MongoDB service covering document modeling, indexes, aggregation pipelines, performance, operations on MongoDB Atlas and migrations to or from MongoDB.
Who is it for?
Teams running MongoDB in production, businesses considering MongoDB for a new project, or those who want to move away from it to a relational engine.
What problem does it solve?
Unindexed queries, oversized documents, slow aggregations, high Atlas costs, schema that is hard to evolve, migration to carry out.
How long does it usually take?
An audit usually takes a few days. Index and model optimization takes a few days to a few weeks. A full model migration often requires several weeks.
What factors influence the price?
Price depends on data volume, the number of collections and critical queries, the extent of the model redesign, hosting and availability requirements.
How does the engagement run?
Access pattern and execution plan analysis, modeling, indexes and query rewriting, sizing, then gradual migration with data verification.
What are the risks?
A model copied from a relational schema or badly ordered indexes degrade performance. A migration without continuous synchronization leads to data loss.
What alternatives exist?
Using PostgreSQL with JSONB for documents within a relational framework, temporarily scaling up the cluster, or contacting MongoDB support if you are on Atlas.

Frequently asked questions

Is MongoDB the right fit for my project?

MongoDB works well for heterogeneous documents, catalogs, events and heavy write loads. If your data involves many relations, multi-entity transactions and cross-cutting reports, a relational engine such as PostgreSQL is often simpler to operate. We help you decide based on your real use cases.

Should I use MongoDB Atlas or self-host?

Atlas provides backups, updates, alerts and scaling without operational effort, at a higher cost. Self-hosting means managing the replica set, backups and patches yourself. For most teams without a dedicated administrator, Atlas is the reasonable choice.

Why is my Atlas bill so high?

Most often because the cluster is compensating for unindexed queries or oversized documents. After optimizing indexes and the model, it is common to be able to lower the cluster tier. Storage, backups and data transfer also weigh on the bill.

How do you migrate from MySQL to MongoDB?

It is not an export-import: the relational model must be rethought as documents based on how the application accesses data. We design the new schema, write the transformation scripts, synchronize changes during the transition and validate the data before cutover.

Does MongoDB support transactions?

Yes, MongoDB supports multi-document transactions on replica sets. They have a performance cost and do not replace good modeling: most of the time, a well-designed document makes the transaction unnecessary.

Tell us about your project

Describe your need in a few lines: we come back to you with a first analysis and the next steps.