MongoDB C # драйвер переименовывает коллекцию

2

Я пытаюсь переименовать коллекцию в MongoDB с помощью RenameCollectionOperation(). Я нашел документацию, но я не могу заставить ее работать.

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()
    );
}
Теги:

1 ответ

2
Лучший ответ

Я понял.

Кажется, мне нужно создать метод, который возвращает только базу данных.

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");

Ещё вопросы

Сообщество Overcoder
Наверх
Меню