Следующий код взят из работающего приложения:
weekplanStore.Update(
Query.EQ("weekNumber", week),
Update.Replace(rawWeekPlan),
UpdateFlags.Upsert);
WeekplanStore - это моя коллекция MongoDB, и код обновит найденный документ с запросом в первом аргументе или вставит новый, если его нетнайден.«Хитрость» заключается в том, чтобы использовать модификатор UpdateFlags.Upsert.
rawWeekPlan - это объект, вставленный или обновленный, и имеет следующий тип:
private class RawWeekPlan
{
public ObjectId id;
public int weekNumber;
public WeekPlanEntry[] entries;
}
и превращен драйвером в bsonавтоматически.