[英]MongoDB C# driver rename collection
I'm trying to rename a collection in MongoDB with RenameCollectionOperation(). 我正在尝试使用RenameCollectionOperation()重命名MongoDB中的集合。 I found the documentation of it but I can't get it working.
我找到了它的文档,但我无法使它工作。
https://mongodb.github.io/mongo-csharp-driver/2.4/apidocs/html/T_MongoDB_Driver_Core_Operations_RenameCollectionOperation.htm https://mongodb.github.io/mongo-csharp-driver/2.4/apidocs/html/T_MongoDB_Driver_Core_Operations_RenameCollectionOperation.htm
private readonly MongoClient _mongoClient = new MongoClient("connectionString");
public IMongoCOllection<RenameCollection> ToRenameCollection => _MognoClient.GetDatabase().GetCollection<RenameCollection>("RrenameCollection");
var checkIfCollectionExists = ToRenameCollection.Find(new BsonDocument());
if (checkIfCollectionExists != null)
{
var test = new MongoDB.Driver.Core.Operations.RenameCollectionOperation(
new CollectionNamespace("database", "RrenameCollection"),
new CollectionNamespace("database", "RenameCollection"),
new MessageEncoderSettings()
);
}
I figured it out. 我想到了。
It seems I needed to create a method that only returned the database. 我似乎需要创建一个只返回数据库的方法。
private readonly MongoClient _mongoClient = new MongoClient("connectionString");
public IMongoDatabase Database => _mongoClient.GetDatabase();
private async Task<bool> CollectionExistsAsync(string collectionName)
{
var filter = new BsonDocument("name", collectionName);
//filter by collection name
var collections = await _mongo.Database.ListCollectionsAsync(new ListCollectionsOptions { Filter = filter });
//check for existence
return await collections.AnyAsync();
}
var oldSmsLogExists = await CollectionExistsAsync("RrenameCollection").ConfigureAwait(false);
if (oldSmsLogExists)
_mongo.Database.RenameCollection("RrenameCollection", "RenameCollection");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.