Is there any way in C# to check if a collection with a specific name already exists in my MongoDB database?
You can do it like this:
database.GetCollection("blah").Exists()
@Ofir answer is correct. Here's a synchronous alternative built around the ListCollectionNames
API:
public bool CollectionExists(IMongoDatabase database, string collectionName)
{
var filter = new BsonDocument("name", collectionName);
var options = new ListCollectionNamesOptions { Filter = filter };
return database.ListCollectionNames(options).Any();
}
@im1dermike answer is no longer working for c# driver version 2.0+
Here is an alternative:
public async Task<bool> CollectionExistsAsync(string collectionName)
{
var filter = new BsonDocument("name", collectionName);
//filter by collection name
var collections = await GetDatabase().ListCollectionsAsync(new ListCollectionsOptions { Filter = filter });
//check for existence
return await collections.AnyAsync();
}