MongoDBデータベースに特定の名前のコレクションが既に存在するかどうかを確認する方法はC#にありますか?
あなたはこのようにそれを行うことができます:
database.GetCollection("blah").Exists()
@ im1dermike回答がC#ドライバーバージョン2.0以降で機能しない
ここに代替があります:
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();
}
@Ofirの答えは正しいです。以下は、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();
}