【问题标题】:Building indexes in MongoDB with .NET driver 2.0使用 .NET 驱动程序 2.0 在 MongoDB 中构建索引
【发布时间】:2015-04-08 01:41:00
【问题描述】:

使用新驱动程序 2.0 构建索引的新方法是什么? 没有任何关于此的文档。

显然,这现在适用于新的IndexKeysDefinitionBuilder<> 界面,但到目前为止,这就是我所得到的。

【问题讨论】:

  • 升级到 2.0 后我也遇到了同样的问题!为什么他们觉得有必要将简单的事情完全复杂化!?
  • 我开始喜欢它了。我可以看到设计决策来自哪里,并且在这种情况下构建器的使用与其他用途(过滤器构建器等)一致。我特别喜欢他们让一切都完全异步。只是(目前至少)没有很好的文档记录,也不容易获得详细的信息或样本。
  • 已经有几天了,我也喜欢它,尤其是异步的东西。如此多的变化和很少的文档让我感到沮丧,我不得不求助于阅读 github 上的源代码......我相信他们很快就会解决这个问题

标签: c# .net mongodb mongodb-.net-driver mongodb-csharp-2.0


【解决方案1】:

您需要使用IndexKeysDefinition 致电await CreateOneAsyncBuilders.IndexKeys

static async Task CreateIndex()
{
    var client = new MongoClient();
    var database = client.GetDatabase("db");
    var collection = database.GetCollection<Hamster>("collection");
    await collection.Indexes.CreateOneAsync(Builders<Hamster>.IndexKeys.Ascending(_ => _.Name));
}

如果您没有Hamster,您也可以通过指定索引的 json 表示以非强类型方式创建索引:

await collection.Indexes.CreateOneAsync("{ Name: 1 }");

【讨论】:

  • 谢谢。你知道如何为 BsonDocument 集合做到这一点吗?
  • @BigJoe714 我已经更新了帖子。这能回答你的问题吗?
  • 如何使用Indexes.CreateMany()创建多个索引?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-12-17
  • 1970-01-01
  • 2015-06-25
  • 1970-01-01
  • 2019-11-03
  • 1970-01-01
  • 2017-04-16
相关资源
最近更新 更多