问题
Is there any way in C# to check if a collection with a specific name already exists in my MongoDB database?
回答1:
You can do it like this:
database.GetCollection("blah").Exists()
回答2:
@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();
}
回答3:
@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();
}
来源:https://stackoverflow.com/questions/25017219/how-to-check-if-collection-exists-in-mongodb-using-c-sharp-driver