MongoDB支持复合索引,其中单个索引结构持有对集合文档中多个字段 [1]的引用。下图展示了两个字段上的复合索引示例:
复合索引 - 图1
[1] mongodb对任何复合索引施加32个字段的限制。
复合索引可以支持在多个字段上匹配的查询。

创建复合索引

要创建复合索引,请使用类似于以下原型的操作:

  1. db.collection.createIndex( { <field1>: <type>, <field2>: <type2>, ... } )

值1表示以升序对项目进行排序的索引。值-1指定一个索引,该索引按降序对项目进行排序
考虑一个名为的集合products,其中包含类似于以下文档的文档:

  1. {
  2. "_id": ObjectId(...),
  3. "item": "Banana",
  4. "category": ["food", "produce", "grocery"],
  5. "location": "4th Street Store",
  6. "stock": 4,
  7. "type": "cases"
  8. }

以下操作在item和 stock字段上创建一个升序索引:

  1. db.products.createIndex( { "item": 1, "stock": 1 } )