Alex Kilpatrick
Alex Kilpatrick

Reputation: 411

Batch inserts using ContinueOnError

I'm using the following code to do a batch insert using the C# driver. I have a unique index, and I want it to fail silently if I try to insert a record that isn't unique.

Even though I have InsertFlags.ContinueOnError set, I still get an error on the InsertBatch call. If I swallow the error as I have shown below, everything works ok. But this certainly feels wrong.

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

Upvotes: 3

Views: 1656

Answers (1)

Ryan
Ryan

Reputation: 6517

Are you using version 1.8 of the csharp Mongo driver?

If so, try upgrading to version 1.8.1 which contains a fix for the following two issues:

So your inserts could succeed, but the driver is still throwing an exception on bulk insert operations due to the bug above.

And this exception doesn't originate from the database itself, explaining why the inserts succeed but you still need to catch the exception afterwards - i.e. the db is in fact respecting your ContinueOnError flag but the driver throws an exception anyway afterwards.

Upvotes: 1

Related Questions