C# MongoDB添加索引

场景:

  在最近的项目中,用到了Mongodb,用它来保存大量工业数据。同时是会根据用户自动建立对应的数据表。这要求同时建立索引来加快查询。

解决:

  1.在Nuget包中查询“mongocsharpdriver”,进行安装,这个安装包不同于MongoDB.Driver,这个包包括了MongoDB.Driver、MongoDB.Bson等。同时可以对数据库中每个表进行更加细致的操作,比如index,cursor等。而MongoDB.Driver只能满足一般的增删改查。

  2.添加如下代码:

 1 public void AddIndex(string collection)
 2  {
 3         MongoDatabase mongoDatabase = _mongoClient.GetServer().GetDatabase(_databaseSettings.DatabaseName);
 4         var datacollection = mongoDatabase.GetCollection(collection);
 5         var allindex = datacollection.GetIndexes();
 6         
 7         if (!datacollection.IndexExistsByName("bTime_-1_eTime_-1_devId_1"))
 8         {
 9                 var as_index = new IndexKeysBuilder().Descending("bTime");
10                 as_index.Descending("eTime");
11                 as_index.Ascending("devId");
12                 datacollection.CreateIndex(as_index);
13         }
14    
16 }

  3.这里的 Descending() 和 Ascending() 可以选择字段添加升序还是降序索引,最后通过createIndex来添加索引。

  4.用Navicat查看数据库下的索引情况:

  成功生成了索引。

  5.最后用查询语句测试一下,有没有命中索引,主要用explain()语句,查看是否命中:

  

  可以看到执行一个查询后,inputStage中的indexName是设置的索引。

posted @ 2021-04-29 19:44  陈子白  阅读(1307)  评论(0编辑  收藏  举报