Каков наилучший способ обновить сущность? - PullRequest
0 голосов
/ 04 января 2019

Я создаю приложение, используя C # и mongoDB.Я реализовал шаблон репозитория для операции с данными в mongoDB.

Однако я ищу эффективный способ обновления сущности в mongoDB.В настоящее время мы получаем документ с помощью метода GetByID, затем выполняем манипуляции в памяти и затем вызываем метод save, который обновляет документ на сервере MongoDB.

Participant p = await participantRepo.GetByIdAsync(ParticipantId);
p.SetCreateAuditInfo(user.Id);
p.AddRelation(user.Id);
participantRepo.SaveAsync(p);

Но поскольку мы загружаем документ в память, он не выглядит подходящим образом, когда документ слишком большой или большой.Есть ли способ напрямую обновить документ в MongoDB Server

1 Ответ

0 голосов
/ 04 января 2019

Существует множество функций, доступных для обновления частей существующего документа mongodb.

Пример из документации (http://mongodb.github.io/mongo-csharp-driver/2.7/reference/driver/crud/writing/):

var filter = new BsonDocument("FirstName", "Jack");
var update = Builders<BsonDocument>.Update.Set("FirstName", "John");

(как всегда, есть также напечатанный текст)доступна версия).

Список доступных операторов вы найдете здесь: https://docs.mongodb.com/manual/reference/operator/update/

Эти операторы вы найдете, когда взгляните на класс построителя обновлений в c #.пример для оператора "set".

var update = Builders<YourModelClass>.Update.Set(_ => _.Name, "new name");
yourMongoCollection.UpdateOneAsync(_ => _.Id, update);
...