У меня есть одна коллекция, в которой я делаю операцию вставки/обновления. для ввода i используйте код:Как обновить встроенный документ в mongodb с помощью C#
MongoCollection<BsonDocument> tblCity = mydb.GetCollection<BsonDocument>("tblCity");
BsonDocument CollectionCity = new BsonDocument {
{ "CityCode", cityCode },
{ "CityName", cityName },
{ "stamps" , new BsonDocument {
{"ins", DateTime.Now},
{"upd", ""},
{"createUsr", UserId},
{"updUsr", ""},
{"Ins_Ip", ""},
{"Upd_IP", GetIP()}
}
}
};
tblCity.Insert(CollectionCity);
он работает нормально. но в то время как я обновляя я использую код:
MongoCollection <BsonDocument> tblCity = mydb.GetCollection<BsonDocument>("tblCity");
var query = new QueryDocument { { "City_strCode", cityCode } };
var update = new UpdateDocument {
{ "$set", new BsonDocument("City_strName", cityName) },
{ "stamps" , new BsonDocument{
{"upd", DateTime.Now},
{"updUsr", ""},
{"Upd_IP", GetIP()
}}
}};
tblCity.Update(query, update);
Но проблема заключается в том, что с изменением из ins
дату я хочу обновить upd
поле. Но он удаляет поле ins
и обновляет поле upd
. Я пытаюсь много способов, но не в состоянии получить какое-либо решение. Пожалуйста, предложите что-нибудь .... Даже я получил некоторые ссылки на основе этого и попытался .. но ни один из них тренировки.
вы пробовали, используя точечную нотацию (.)? Например: '" stamps.upd "'? Ваш существующий код переписывает все поле «штампы» новым документом. – WiredPrairie
@WiredPrairie: Я пробовал то же самое «stamps.upd», но он рассматривает это как отдельное поле. «stamps.upd» работает непосредственно в оболочке mongo, но в коде C# он не работает – HomeWork
@WiredPrairie: Спасибо Yaar Bellow code working fin ... спасибо большое – HomeWork