3

我正在使用以下代码使用 C# 驱动程序进行批量插入。我有一个唯一索引,如果我尝试插入一条不唯一的记录,我希望它静默失败。

即使我已经设置,我仍然会在通话中InsertFlags.ContinueOnError收到错误消息。InsertBatch如果我吞下如下所示的错误,一切正常。但这肯定感觉不对。

var mio = new MongoInsertOptions {Flags = InsertFlags.ContinueOnError};
// newImages is a list of POCO objects
try
{
    _db.GetCollection("Images").InsertBatch(newImages, mio);
}
catch (WriteConcernException)
{           
}
4

1 回答 1

1

您使用的是 1.8 版的 csharp Mongo 驱动程序吗?

如果是这样,请尝试升级到版本 1.8.1,其中包含对以下两个问题的修复:

因此,您的插入可能会成功,但由于上述错误,驱动程序仍然会在批量插入操作中引发异常。

并且此异常并非源自数据库本身,它解释了为什么插入成功但您仍然需要在之后捕获异常 - 即数据库实际上尊重您的 ContinueOnError 标志,但驱动程序无论如何都会抛出异常。

于 2013-10-30T02:05:12.463 回答