c# - 使用 C# api 创建一个 mongodb 上限集合

标签 c# .net mongodb mongodb-.net-driver

使用 C# MongoDB 驱动程序,我们目前像这样创建我们的集合:

MongoServer mongoServer = MongoServer.Create("some conn str");
MongoDatabase db = mongoServer.GetDatabase("mydb");
MongoCollection logs = db.GetCollection("mycoll");

我想将 mycoll 用作上限集合。我还没有看到任何关于如何使用 C# 驱动程序创建上限集合的示例或文档细节。我发现了大量的 JS 示例,甚至还有一个 Java 示例(此处:Creating a mongodb capped collection in java)。

有没有人必须这样做,或者知道在 C# 中是否可行?

最佳答案

从驱动程序的 v2.0 开始,有一个新的 async - 仅 API。不应再使用旧 API,因为它是新 API 的阻塞外观,已被弃用。

目前推荐的创建上限集合的方法是调用并等待 IMongoDatabase.CreateCollectionAsyncCreateCollectionOptions指定 Capped = true 的实例和 MaxSize = <cap size in bytes>MaxDocuments = <cap in doc count> (或两者)。

async Task CreateCappedCollectionAsync()
{
    var database = new MongoClient().GetDatabase("HamsterSchool");
    await database.CreateCollectionAsync("Hamsters", new CreateCollectionOptions
    {
        Capped = true,
        MaxSize = 1024,
        MaxDocuments = 10,
    });
}

关于c# - 使用 C# api 创建一个 mongodb 上限集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11317070/

相关文章:

c# - 为什么要使用 ActionResult

c# - 如何在 MAUI 中刷新 XAML View ?

c# - 如何执行SUM并在NEST中计数?

c# - 如何在网格中移动项目

c# - 如何防止事件导致其自身的事件在 C# 中触发?

c# - .ToList() 线程安全

node.js - Mongoose 直接填充创建子文档

c# - 在 C# 中使用 MongoClientSettings 初始化 MongoClient

mongodb - 更新 mongodb 中的嵌套文档

mongodb - 如何在不使用_id的情况下创建mongodb集合