MongoDB 索引和搜索

索引和搜索

MongoDB Atlas 配备了一个全文搜索引擎,可用于搜索集合中的文档。

Atlas Search 由 Apache Lucene 提供支持。

创建索引

我们将使用 Atlas 仪表板在“sample_mflix”数据库上创建一个索引,该数据库包含我们在“聚合介绍”部分中加载的示例数据。

  • 在 Atlas 仪表板中,点击您的集群名称,然后点击搜索选项卡。
  • 点击创建搜索索引按钮。
  • 使用可视化编辑器,然后点击“下一步”。
  • 为您的索引命名,选择要索引的数据库和集合,然后点击“下一步”。
  • 如果您将索引命名为 "default",则在 $search 管道阶段中无需指定索引名称。
  • 选择 sample_mflix 数据库和 movies 集合。
  • 点击创建搜索索引,然后等待索引完成。

运行查询

为了使用我们的搜索索引,我们将在聚合管道中使用 $search 操作符。

实例

db.movies.aggregate([
  {
    $search: {
      index: "default", // 可选,除非您将索引命名为 "default" 以外的其他名称
      text: {
        query: "star wars",
        path: "title"
      },
    },
  },
  {
    $project: {
      title: 1,
      year: 1,
    }
  }
])

运行实例

此聚合管道的第一阶段将返回 movies 集合中所有在 title 字段中包含 "star" 或 "wars" 的文档。

第二阶段将从每个文档中投影 titleyear 字段。