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