Existe-t-il un moyen en C # pour vérifier si une collection avec un nom spécifique existe déjà dans ma base de données MongoDB?
Vous pouvez le faire comme ceci:
database.GetCollection("blah").Exists()
@ im1dermike answer ne fonctionne plus pour le pilote c # version 2.0+
Voici une 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();
}
La réponse @Ofir est correcte. Voici une alternative synchrone construite autour de l'API ListCollectionNames
:
public bool CollectionExists(IMongoDatabase database, string collectionName)
{
var filter = new BsonDocument("name", collectionName);
var options = new ListCollectionNamesOptions { Filter = filter };
return database.ListCollectionNames(options).Any();
}