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

标签 c# mongodb mongodb-.net-driver

我正在尝试将一些代码更新到新版本的 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可以安全使用。您不需要检查集合是否存在。这是驱动程序自己完成的。

关于c# - 如何知道集合是否存在 Mongodb C# 版本 2 或更早版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40848452/

相关文章:

c# - 无法通过 AJAX 发送大文本

c# - 获取 LINQ 的 Any() 方法的 MethodInfo?

c# - FCM - 重新调试应用程序后发送消息时出现 Android Xamarin NotRegistered 错误

java - 将来自 Web 服务的大型 JSON 数据插入 mongodb

C# Mongodb Driver - 如何将元素插入到数组的位置 0

c# mongoDb 2.0 字典中不存在

c# - 如何将 tsharks 输出实时传输到 C# 程序

javascript - 如何在 Mongoose 中构建条件查询?

c# - "Unable to determine the serialization information for"MongoDB 复杂类型等于空过滤器的错误

mongodb - 在 Web 环境中有效地使用 MongoDB