如何使用C#驱动程序检查MongoDB中是否存在集合?

在C#中是否有任何方法可以检查MongoDB数据库中是否已存在具有特定名称的集合?

你可以这样做:

database.GetCollection("blah").Exists()

@ im1dermike答案不再适用于c#驱动程序版本2.0+

这是一个替代方案:

  public async Task 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(); } 

@Oir答案是对的。 这是围绕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(); }