ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

es里的index和mongo里的collection的区别

2026/8/7 22:34:24 拓冰建站 浏览量
es里的index和mongo里的collection的区别

概念对比

  • Elasticsearch 中的 index

    • 是数据的逻辑分组,相当于数据库中的“库”或者“表”。
    • 一个index里面包含很多document(文档),每个document是一条数据(JSON格式)。
    • 索引(index)是Elasticsearch数据和数据结构的基本单位。
  • MongoDB 中的 collection(集合)

    • 也是数据的逻辑分组,包含很多document(文档),每个document也是一条数据(BSON格式)。
    • collection在MongoDB相当于关系型数据库中的“表”(table)。

具体类比

  • Elasticsearch

    • 集群(Cluster) > 索引(Index) > 类型(Type,7.x后已废弃) > 文档(Document)
    • 现在一般就是:索引(Index) > 文档(Document)
  • MongoDB

    • 数据库(Database) > 集合(Collection) > 文档(Document)

所以,Elasticsearch的index和MongoDB的collection(集合)更加类似,而不是MongoDB的table。

为什么容易混淆

  • 传统关系型数据库中是 “数据库 > 表 > 行”;
  • MongoDB里“数据库 > 集合 > 文档”;
  • Elasticsearch是“索引 > 文档”。

在MongoDB官方文档和社区讨论中,“collection更像是table”,但在Elasticsearch里,“index更像是table”。

总结

  • Elasticsearch的index ≈ MongoDB的collection ≈ 关系型数据库的table。

便于记忆的对照表

概念ElasticsearchMongoDBMySQL(关系型数据库)
数据组织IndexCollectionTable
单条数据DocumentDocumentRow
数据库级别无(Cluster)DatabaseDatabase

所以,Elasticsearch里的index相当于MongoDB里的collection,也就是集合,和MongoDB的table(表)一样起分组作用,但名字不同。