<!-- llms-explorer concept facts · https://llms-explorer.com/tree/mongodb-atlas-search-and-vector-search/ · pack 2026-09-08 · ~2363 tokens -->

# MongoDB Atlas Search and Vector Search

> ```python

Parent: [MongoDB Atlas](https://llms-explorer.com/tree/mongodb-atlas/) · 12 facets · 34 facts · page: https://llms-explorer.com/tree/mongodb-atlas-search-and-vector-search/

## Pagination with Atlas Search

- For deterministic pagination (not skip/limit): — [source](https://llms-explorer.com/sources/mdb-context-hub/mongodb-search-ai/#pagination-with-atlas-search)

## Atlas Vector Search

- See mongodb-atlas-vector-search for the complete reference. Key summary: — [source](https://llms-explorer.com/sources/mdb-context-hub/mongodb-search-ai/#atlas-vector-search)

## Hybrid Search ($rankFusion)

- Combine Atlas Search (BM25) with Vector Search (HNSW) results: — [source](https://llms-explorer.com/sources/mdb-context-hub/mongodb-search-ai/#hybrid-search-rankfusion)

## Auto Embedding (Voyage AI)

- Skip the external embedding pipeline: — [source](https://llms-explorer.com/sources/mdb-context-hub/mongodb-search-ai/#auto-embedding-voyage-ai)

## Search Node Architecture

- For production, use dedicated Search Nodes to isolate Atlas Search / Vector Search workloads from OLTP: — [source](https://llms-explorer.com/sources/mdb-context-hub/mongodb-search-ai/#search-node-architecture)
  - S20_HIGHCPU_NVME, S30_HIGHCPU_NVME, etc. — [source](https://llms-explorer.com/sources/mdb-context-hub/mongodb-search-ai/#search-node-architecture)
  - Zero-downtime migration: enable Search Nodes → Atlas replications in background → automatic traffic switch — [source](https://llms-explorer.com/sources/mdb-context-hub/mongodb-search-ai/#search-node-architecture)
  - See mongodb-atlas-search-nodes for sizing guide — [source](https://llms-explorer.com/sources/mdb-context-hub/mongodb-search-ai/#search-node-architecture)

## When to Use Atlas Search vs Text Indexes

- Always prefer Atlas Search for production full-text search. Text indexes are only appropriate for very small collections or simple dev prototypes. — [source](https://llms-explorer.com/sources/mdb-context-hub/mongodb-search-ai/#when-to-use-atlas-search-vs-text-indexes)

## Anti-Patterns

- Dynamic true + all fields queried: Dynamic mapping indexes everything, making the index large. Use explicit mappings for production. — [source](https://llms-explorer.com/sources/mdb-context-hub/mongodb-search-ai/#anti-patterns)
- No search node for production Vector Search: Resource contention with OLTP causes latency spikes — [source](https://llms-explorer.com/sources/mdb-context-hub/mongodb-search-ai/#anti-patterns)
- numCandidates too low: numCandidates: limit = minimal recall; use 10-20× limit — [source](https://llms-explorer.com/sources/mdb-context-hub/mongodb-search-ai/#anti-patterns)
- Missing filter fields in vector index: filter in $vectorSearch requires the field to be declared as type: "filter" in the index definition; otherwise falls back to post-filter (much less efficient) — [source](https://llms-explorer.com/sources/mdb-context-hub/mongodb-search-ai/#anti-patterns)

## References

- Atlas Search Documentation — [source](https://llms-explorer.com/sources/mdb-context-hub/mongodb-search-ai/#references)
- $search Aggregation Stage — [source](https://llms-explorer.com/sources/mdb-context-hub/mongodb-search-ai/#references)
- $rankFusion — [source](https://llms-explorer.com/sources/mdb-context-hub/mongodb-search-ai/#references)
- Atlas Vector Search — [source](https://llms-explorer.com/sources/mdb-context-hub/mongodb-search-ai/#references)
- Voyage AI Auto-Embedding — [source](https://llms-explorer.com/sources/mdb-context-hub/mongodb-search-ai/#references)

## Where this helps

- Building a hybrid search feature that needs to merge keyword relevance (BM25) with semantic similarity (vector search) into one ranked result set. — [source](https://llms-explorer.com/tree/mongodb-atlas-search-and-vector-search/) *(AI-suggested, synthesized from this pack's existing facts — not extracted from a source document.)*
- Deciding whether a production Vector Search workload needs dedicated Search Nodes to avoid resource contention with the OLTP cluster. — [source](https://llms-explorer.com/tree/mongodb-atlas-search-and-vector-search/) *(AI-suggested, synthesized from this pack's existing facts — not extracted from a source document.)*
- Adopting automated embedding, via Voyage AI models through autoEmbed, to skip maintaining an external embedding pipeline. — [source](https://llms-explorer.com/tree/mongodb-atlas-search-and-vector-search/) *(AI-suggested, synthesized from this pack's existing facts — not extracted from a source document.)*
- Implementing deterministic pagination for a search UI where skip/limit pagination would be too slow or unstable at depth. — [source](https://llms-explorer.com/tree/mongodb-atlas-search-and-vector-search/) *(AI-suggested, synthesized from this pack's existing facts — not extracted from a source document.)*

## Project ideas

- Build a $rankFusion query that merges Atlas Search (BM25) and Atlas Vector Search (HNSW) results into a single hybrid-ranked response. — [source](https://llms-explorer.com/tree/mongodb-atlas-search-and-vector-search/) *(AI-suggested, synthesized from this pack's existing facts — not extracted from a source document.)*
- Migrate an external embedding pipeline to Atlas's built-in autoEmbed field type backed by Voyage AI, and compare operational complexity before and after. — [source](https://llms-explorer.com/tree/mongodb-atlas-search-and-vector-search/) *(AI-suggested, synthesized from this pack's existing facts — not extracted from a source document.)*
- Provision dedicated Search Nodes for a production Vector Search workload and measure query latency before and after isolating it from OLTP. — [source](https://llms-explorer.com/tree/mongodb-atlas-search-and-vector-search/) *(AI-suggested, synthesized from this pack's existing facts — not extracted from a source document.)*
- Build a vector index with an explicitly declared filter-type field so filters in $vectorSearch use the index instead of falling back to a much slower post-filter. — [source](https://llms-explorer.com/tree/mongodb-atlas-search-and-vector-search/) *(AI-suggested, synthesized from this pack's existing facts — not extracted from a source document.)*

## Common mistakes

- Leaving dynamic mapping enabled with every field queried, producing an unnecessarily large index instead of using explicit mappings in production. — [source](https://llms-explorer.com/tree/mongodb-atlas-search-and-vector-search/) *(AI-suggested, synthesized from this pack's existing facts — not extracted from a source document.)*
- Running production Vector Search without a dedicated Search Node, letting it contend for resources with OLTP and causing latency spikes. — [source](https://llms-explorer.com/tree/mongodb-atlas-search-and-vector-search/) *(AI-suggested, synthesized from this pack's existing facts — not extracted from a source document.)*
- Setting numCandidates too close to limit, which minimizes recall — a 10–20× multiple of limit is the recommended starting point. — [source](https://llms-explorer.com/tree/mongodb-atlas-search-and-vector-search/) *(AI-suggested, synthesized from this pack's existing facts — not extracted from a source document.)*
- Omitting a field from the vector index's filter-type declaration and then filtering on it in $vectorSearch anyway, which silently falls back to a much less efficient post-filter. — [source](https://llms-explorer.com/tree/mongodb-atlas-search-and-vector-search/) *(AI-suggested, synthesized from this pack's existing facts — not extracted from a source document.)*

## Known issues

- This pack's own summary field is malformed, a stray code-fence marker instead of a real summary, a sign the source content it was generated from may have been imperfectly extracted — verify details against the fuller mongodb-atlas-search and mongodb-atlas-vector-search references before relying on this pack alone. — [source](https://llms-explorer.com/tree/mongodb-atlas-search-and-vector-search/) *(AI-suggested, synthesized from this pack's existing facts — not extracted from a source document.)*
- Auto-embedding via Voyage AI depends on a specific external model family (voyage-4-large, voyage-4, voyage-4-lite, voyage-code-3); switching providers or models later requires re-embedding existing data. — [source](https://llms-explorer.com/tree/mongodb-atlas-search-and-vector-search/) *(AI-suggested, synthesized from this pack's existing facts — not extracted from a source document.)*
- Search Node migration to production is described as zero-downtime via background replication and automatic traffic switch, but that migration still needs to be planned and executed deliberately, not assumed automatic on enabling the feature. — [source](https://llms-explorer.com/tree/mongodb-atlas-search-and-vector-search/) *(AI-suggested, synthesized from this pack's existing facts — not extracted from a source document.)*
- Text indexes are explicitly called out as appropriate only for very small collections or simple dev prototypes — they are not a long-term substitute for Atlas Search. — [source](https://llms-explorer.com/tree/mongodb-atlas-search-and-vector-search/) *(AI-suggested, synthesized from this pack's existing facts — not extracted from a source document.)*

## Context files

- [MongoDB Atlas Search and Vector Search](https://llms-explorer.com/downloads/sources/mdb-context-hub/mongodb-search-ai.md)
