Question

So, there are

  • mongodb-csharp
  • simple-mongodb
  • NoRM

as C# drivers for MongoDB available.

Which one of them is the most mature and stable one? Why would you choose one over the other two?

Are they production ready?

Was it helpful?

Solution

The mongodb-csharp driver is about to make a huge push regarding support for typedcollections which will include full Linq support. I think you'll find that it is easy to work.

The other 2 projects are also steaming ahead. If you want .NET 4.0 support, simple-mongodb would be your best bet.

NoRM has a whole bunch of committers who are all great coders, so no problem with it except it doesn't have an official release.

OTHER TIPS

Since this question was answered 10gen have released an official MongoDB C# driver, and although it isn't the most mature C# driver in terms of age, with 10gen behind it it may end up as the most up to date.

It is more low level than the mongodb-csharp driver (no Linq support at the moment) but we haven't found that to be a problem. We moved to the official driver from mongodb-csharp recently on a project (that isn't in production yet) for the following reasons:

  • Replica Set support in an official release
  • SafeMode allows you to specify how many servers a write must be replicated to
  • The driver handles connecting/disconnecting to the database
  • We're hoping that as an official driver, it will have more developer support

I'd go with Sam Corder’s mongodb-csharp. Also checkout this article.

For all curious out there. The best combination at this point seems to be official 10gen C# driver combined with fluent-mongo for Linq support:

https://github.com/mongodb/mongo-csharp-driver

https://github.com/craiggwilson/fluent-mongo

Update: with release 1.4 of official C# driver, there'll be no need in fluent-mongo anymore.

You should use MongoDB.Driver from this nuget package.

You can view the full tutorials for the MongoC# example looking at this video https://www.youtube.com/watch?v=6x0-vHHHpv8

A couple reasons to avoid the mongodb-csharp driver:

  1. It doesn't support "or" logic.
  2. It doesn't seem to support geospatial queries, at least we were not able to get it working.

There is a performance issue in typed builders (Update<>, Query<>) of official 10gen C# driver. See How to speed up typed builders in 10gen official MongoDB C# driver?

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top