我正在尝试将一些代码更新到新版本的 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
可以安全使用。您不需要检查集合是否存在。这是由司机自己完成的。
我是一名优秀的程序员,十分优秀!