使用 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.CreateCollectionAsync
用CreateCollectionOptions
指定 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/