You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Golang mongo-driver在MongoDB中创建复合索引

复合索引创建说明与实现方案

CreateMany方法的设计逻辑就是遍历传入的列集合,为每一列单独生成单列索引,本身不支持生成多列复合索引,你需要调用对应开发框架下专门创建复合索引的API实现需求,以下是常见开发场景的实现示例:

Entity Framework Core 场景

在OnModelCreating方法中对目标实体配置多列索引即可,示例代码如下:

modelBuilder.Entity<目标实体类>()
    .HasIndex(e => new { e.第一列名, e.第二列名, e.第三列名 });
// 可在末尾链式调用IsUnique()等方法配置索引属性

如果需要批量生成多组复合索引,手动遍历你预设的复合索引列组合,调用HasIndex方法逐个生成即可,不要使用CreateMany方法。

MongoDB C# 驱动场景

直接使用CreateOne方法传入复合索引定义即可,示例代码如下:

var indexKeys = Builders<目标文档类>.IndexKeys
    .Ascending(d => d.第一列名)
    .Descending(d => d.第二列名); // 可按需调整列的排序方向和数量
await collection.Indexes.CreateOneAsync(new CreateIndexModel<目标文档类>(indexKeys));

复合索引的列顺序会直接影响索引的查询命中效率,通常建议把过滤频率高、区分度高的列放在索引的靠前位置。

内容的提问来源于stack exchange,提问作者Sarthak Jha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 09:39:05