如何检查收集是否存在于MongoDB使用c#驱动程序
本文关键字:存在 MongoDB 使用 驱动程序 是否 何检查 检查 | 更新日期: 2023-09-27 18:15:40
在c#中是否有任何方法来检查一个特定名称的集合是否已经存在于我的MongoDB数据库中?
@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();
}
以上答案是正确的,但这里是最新驱动程序(MongoDB)的另一种方法。司机2.11.6);
public async Task<bool> IsCollectionExistsAsync(string collectionName)
{
MongoClient dbClient = new(_connectionString);
IMongoDatabase database = dbClient.GetDatabase(_databaseName);
IMongoCollection<BsonDocument> mongoCollection = database.GetCollection<BsonDocument>(collectionName);
if (mongoCollection != null)
{
return true;
}
return false;
}
你可以这样做:
database.GetCollection("blah").Exists()