public void UpdateOneEmbeddedData(Messages parentDocument, ImageMessageEmbedded updatedData) { FilterDefinitionBuilder <Messages> filterBuilder = Builders <Messages> .Filter; FilterDefinition <Messages> filter = filterBuilder.And(filterBuilder.Eq("_id", parentDocument.ID), filterBuilder.Eq("image_message._id", updatedData.ID)); UpdateDefinition <Messages> update = Builders <Messages> .Update.Set(document => document.SentImages[-1], updatedData); connectionManager.RetrieveCollection <Messages>().FindOneAndUpdate(filter, update); }
public void DeleteEmbeddedDocument(Messages parentDocument, ImageMessageEmbedded deleteData) { FilterDefinitionBuilder <Messages> filterBuilder = Builders <Messages> .Filter; FilterDefinition <Messages> filter = filterBuilder.And(filterBuilder.Eq("_id", parentDocument.ID), filterBuilder.Eq("image_message._id", deleteData.ID)); UpdateDefinition <Messages> update = Builders <Messages> .Update.PullFilter("SentImages", Builders <ImageMessageEmbedded> .Filter.Eq("_id", deleteData.ID)); connectionManager.RetrieveCollection <Messages>().FindOneAndUpdate(filter, update); }
public void AppendNewDataItem(Messages parentDocument, ImageMessageEmbedded newData) { FilterDefinition <Messages> filter = Builders <Messages> .Filter.Eq("_id", parentDocument.ID); UpdateDefinition <Messages> update = Builders <Messages> .Update.Push("image_message", newData); connectionManager.RetrieveCollection <Messages>().UpdateOne(filter, update); }