Skip to main content
 首页 » 编程设计

c#之如何知道集合是否存在 Mongodb C# 版本 2 或更早版本

2024年04月12日40yyy_WW

我正在尝试将一些代码更新到新版本的 C# Mongodb 驱动程序,版本 2 或更高版本,但似乎 CollectionExists() 方法已被弃用,它曾经在旧版本,但不再是。我如何知道新驱动程序是否已经存在一个集合?

public static IMongoCollection<T> GetCollectionSafe<T>(string collectionName) 
{                 
    var db = GetDatabase(); 
    if (!db.CollectionExists(collectionName)) //throws error 
    { 
         db.CreateCollection(collectionName); 
    } 
    return db.GetCollection<T>(collectionName); 
} 

GetDatabase() 属于 IMongoDatabase 类型。我只想知道是否存在具有特定名称的集合。

请您参考如下方法:

您可以通过以下代码检查集合是否存在

public async Task<bool> CheckCollection(IMongoDatabase database, string collectionName) 
{ 
    var filter = new BsonDocument("name", collectionName); 
    var collectionCursor = await database.ListCollectionsAsync(new ListCollectionsOptions {Filter = filter}); 
    return await collectionCursor.AnyAsync(); 
} 

附言方法 GetCollection 可以安全使用。您不需要检查集合是否存在。这是由司机自己完成的。