J'utilise le pilote C # pour utiliser MongoDb dans les petits projets, et maintenant je suis resté avec la mise à jour des documents. essayer de comprendre comment mettre à jour le champ AVG (int)
voici mon code:
IMongoCollection<Student> studentCollection = db.GetCollection<Student>("studentV1");
Student updatedStudent = new Student() { AVG = 100, FirstName = "Shmulik" });
studentCollection.UpdateOne(
o=>o.FirstName == student.FirstName,
**<What should I write here?>**);
il existe un moyen simple et propre de mettre à jour des champs spécifiques comme la méthode ReplaceOne(updatedStudent)
?
Essayez ceci .. & pour plus d'informations
IMongoCollection<Student> studentCollection = db.GetCollection<Student>("studentV1");
Student updatedStudent = new Student() { AVG = 100, FirstName = "Shmulik" });
var update = Update<Student>.
Set(s => s.AVG, "500").
Set(s => s.FirstName, "New Name");
ok, donc découvert qu'il existe un moyen facile de le faire sans écrire de chaînes partout dans le code (noms de propriété):
var updateDef = Builders<Student>.Update.Set(o => o.AVG, student.AVG);
studentCollection.UpdateOne(o => o.FirstName == student.FirstName, updateDef);
Je ne savais pas que ça prenait tellement de temps à trouver (+2 jours), mais j'ai finalement trouvé cette réponse avec les lignes:
var filter = Builders<TempAgenda>.Filter.Eq(x => x.AgendaId, agendaId);
var update = Builders<TempAgenda>.Update.Set(x => x.Items.Single(p => p.Id.Equals(itemId)).Title, title);
var result = _collection.UpdateOneAsync(filter, update).Result;
et maintenant c'est beaucoup plus facile.