MongoDB C# 驱动程序创建索引

2024-05-02

我刚刚将 MongoDB 从版本 2.5.0 更新到 2.7.0。 Visual Studio 告诉我以下创建索引的方法已过时:

protected override Task OnPerformMaintenanceAsync(CancellationToken cancellationToken) 
    => NotificationLogs.Indexes
                       .CreateOneAsync(Builders<NotificationLog>.IndexKeys
                                                                .Ascending(_ => _.TimestampUtc));

它建议我使用创建索引模型 https://mongodb.github.io/mongo-csharp-driver/2.6/apidocs/html/T_MongoDB_Driver_CreateIndexModel_1.htm.

唯一的问题是我找不到一个可以实现相同功能的示例。

I tried:

protected Task OnPerformMaintenanceTestAsync(CancellationToken cancellationToken)
{
  // Old approach
  var builder = Builders<NotificationLog>.IndexKeys
                                         .Ascending(x => x.TimestampUtc);

  // New approach
  var indexModel = new CreateIndexModel<NotificationLog>(nameof(NotificationLog.TimestampUtc));
  
  return NotificationLogs.Indexes.CreateOneAsync(indexModel);
}

但我得到以下异常:

System.FormatException: 'JSON reader was expecting a value but found 'TimestampUtc'.'


MongoDB 2.7 驱动程序中的新方法是执行以下操作:

var notificationLogBuilder = Builders<NotificationLog>.IndexKeys;
var indexModel = new CreateIndexModel<NotificationLog>(notificationLogBuilder.Ascending(x => x.TimestampUtc));

// .NET Full framwork:
// .NET Standard library:
await IMongoCollection.Indexes
                      .CreateOneAsync(indexModel, cancellationToken: cancellationToken)
                      .ConfigureAwait(false);

// .NET Core:
await IMongoCollection.Indexes
                      .CreateOneAsync(indexModel, cancellationToken: cancellationToken)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MongoDB C# 驱动程序创建索引 的相关文章

随机推荐

  • 在Java中,什么时候调用枚举常量的构造函数?

    要使用 Java 中的一个人为示例 代码如下 enum Commands Save S File F private String shortCut private Commands String shortCut this shortCu
  • 如何在Spring JPA中为审计字段@CreatedDate、@LastModifiedDate保存UTC格式的时间戳

    这是我的带有审计字段的实体的基类 对于字段 CreatedDate LastModifiedDate 默认情况下它会节省我的系统时间 我的要求是以 UTC 格式保存时间戳 有人有解决这个问题的方法吗 import java time Loc
  • 如何让我的应用程序出现在应用程序选择器中?

    我想宣传一下 我的应用程序能够查看 pdf 文件 这样当从文件管理器中选择 pdf 文件时 它就会出现在应用程序选择器中 这是我的意图过滤器的样子
  • 如何禁用 mui 文本字段自动完成?

    我正在使用最新版本的 mui 我有一个包含邮政编码字段的用户联系信息表单 如果值为空 我不希望此字段自动完成 但它会随着浏览器中保存的电子邮件自动完成 这是我到目前为止所尝试过的 自动完成 关闭 自动完成 关闭 自动完成 不 这是我的文本字
  • 使用 Cypher,如何返回仅包含其属性子集的节点

    假设我在 Neo4j 中创建了一个节点 CREATE Thing a foo b bar 我可以编写一个查询来获取该节点及其所有属性 MATCH n Thing a foo RETURN n 返回 a foo b bar 但是是否可以匹配一
  • 如何去掉gridview中的空格

    这件事已经困扰我有一段时间了 我似乎无法解决它 我有一个网格视图 在其中显示一些位图 通过适配器填充图像视图时 我在所有图像侧面添加了 5dp 的填充 iv setPadding 5 5 5 5 但不知何故 每个图像的顶部和底部都添加了更多
  • Android:如何以编程方式打开和关闭屏幕?

    在将这篇文章标记为 重复 之前 我写这篇文章是因为没有其他文章可以解决该问题 我正在尝试关闭设备 然后在几分钟或传感器发生变化后 将其重新打开 关闭显示测试 我可以使用以下方法关闭屏幕 params flags LayoutParams F
  • 在 Google Data Flow 上的 Spring Boot 项目中运行 Apache Beam 管道

    我正在尝试在 Google Data Flow 上的 Spring Boot 项目中运行 Apache Beam 管道 但我一直遇到此错误Failed to construct instance from factory method Da
  • 如何在 BlobStore 中设置文件名属性?

    我正在以编程方式上传图像文件并想要设置文件名 当我通过 POST 上传文件时 文件名属性会自动设置 但是 当使用下面的方法时 文件名未设置 image urllib2 urlopen url file name files blobstor
  • Google Play 商店中不支持的设备 - Flutter

    我已将我的应用程序上传到谷歌商店 但我的一些朋友无法安装它 他们得到 您的设备与此版本不兼容 我已经检查了sdk 屏幕尺寸和权限要求 也将uses features required设置为false 但仍然有一些设备无法安装它 我在游戏控制
  • 如何在 ASP.NET MVC 中构建选项卡式菜单?

    我想构建一个与 StackOverflow 的配置文件管理非常相似的选项卡式菜单 选项卡式菜单 StackOverflow http img410 imageshack us img410 3037 image1nw r jpg http
  • 使用 OpenMP 时无用的 printf 没有加速

    我刚刚编写了第一个 OpenMP 程序 它并行化了一个简单的 for 循环 我在双核机器上运行代码 发现从 1 个线程变为 2 个线程时速度有所提高 然而 我在学校 Linux 服务器上运行相同的代码并没有看到加速 在尝试了不同的事情之后
  • UNION ALL mysql 子句中的行默认顺序?..我的意思是,首先提取哪一行?

    例如 如果我有一个真正简单的查询 选择1 联合所有 选择2 然后通过 Perl 或 PHP 获取行 我会将 1 作为第一行 将 2 作为第二行吗 这种行为在任何地方都有描述吗 Thanx 没有默认顺序 无论是在表中还是在查询中 除非您使用
  • 如果循环符号链接没有用,那为什么允许它们呢?

    我刚刚在这里读这篇文章 类 Unix 系统中的循环符号链接有何用途 https stackoverflow com questions 12680821 what are circular symlinks in unix like sys
  • 从 URL 加载 Xml 时出现超时错误

    我正在执行将实时 xml 文件 从实时 url 加载到 XmlDataDocument 的任务 但每次我都会收到错误 操作已超时 代码如下 包含xml feeds的url 我想将其加载到xmlDoc中 XmlDataDocument xml
  • Oracle:在更新具有多列的表的一个字段时复制行

    有没有一种方法可以一般复制一行 特别是在不指定所有列的情况下 在我的情况下 我有一个大表 我想在其中复制除 ID 和另一列之外的所有列 事实上 数据是在年初复制的 该表有 50 多列 因此如果我不必指定所有列 则更改架构会更加灵活和稳健 这
  • 扩展程序上传后,typo3 网站离线[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我刚刚向typo3 网站上传了一个新扩展 该网站就离线了 我收到 500 内部服务器错误 我可以做什么来倒回操作和 或使
  • Windows Unicode C++ 流输出失败

    我目前正在编写一个应用程序 它要求我在任意窗口上调用 GetWindowText 并将该数据存储到文件中以供以后处理 长话短说 我注意到我的工具在 战地 3 上失败了 我将问题范围缩小到窗口标题中的以下字符 http www filefor
  • 动态加载组件 - 设置和通信

    好吧 我有一个 WPF 应用程序 我们称之为Launcher exe 它加载并执行另一个 WPF 应用程序 我们称之为Loaded exe 动态地使用这样的东西 Byte assemblyData using BinaryReader re
  • MongoDB C# 驱动程序创建索引

    我刚刚将 MongoDB 从版本 2 5 0 更新到 2 7 0 Visual Studio 告诉我以下创建索引的方法已过时 protected override Task OnPerformMaintenanceAsync Cancell